如何使用java.time.ZonedDateTime与DateTimeFormatter输出不带[GMT]的时间
实现方法
你得到带[GMT]后缀的输出,是因为直接输出ZonedDateTime实例时调用了它的默认toString()方法,该方法默认会附带时区区域标识后缀。要得到你需要的无后缀格式,可直接通过以下方式实现:
代码示例
val zonedFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm z") val zonedDateTime = ZonedDateTime.from(zonedFormatter.parse("31.07.2020 14:15 GMT")) // 两种实现方式二选一即可 // 方式1:转换为Instant后直接输出,默认格式符合要求 val displayDate = zonedDateTime.toInstant().toString() // 方式2:使用预定义的ISO_INSTANT格式化器格式化 val displayDate = zonedDateTime.format(DateTimeFormatter.ISO_INSTANT)
最终输出的displayDate值就是你需要的2020-07-31T14:15:00Z格式。
补充说明
Instant是Java时间库中表示瞬时时间的类,它的默认toString()方法遵循ISO-8601瞬时时间规范,只会输出时间和UTC偏移标识Z,不会附带时区区域名称,正好匹配你的需求。
内容的提问来源于stack exchange,提问作者Ry2254
相关产品推荐
相关产品推荐

