【发布时间】:2019-08-29 17:16:19
【问题描述】:
我正在尝试将存储为 UTC 的日期时间转换为给定时区的日期时间。据我所知,ZonedDateTime 是正确的('America/Chicago' 比 UTC 晚 5 小时),但 DateTimeFormatter 在格式化日期时间时没有考虑偏移量。
我的挂钟时间:下午 12:03
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm a")
LocalDateTime now = LocalDateTime.now(ZoneOffset.UTC);
ZonedDateTime zonedDateTime = now.atZone(ZoneId.of("America/Chicago"));
log.info("Now: " + now);
log.info("Zoned date time: " + zonedDateTime);
log.info("Formatted date time: " + zonedDateTime.format(formatter));
输出:
Now: 2019-08-29T17:03:10.041
Zoned date time: 2019-08-29T17:03:10.041-05:00[America/Chicago]
Formatted date time: 08/29/2019 05:03 PM
我期待的格式化时间:08/29/2019 12:03 PM
【问题讨论】:
-
LocalDateTime无法跟踪片刻。阅读类 Javadoc。
标签: java zoneddatetime java-time