【发布时间】:2021-03-03 15:56:50
【问题描述】:
我正在尝试弄清楚如何将 LocalDateTime 转换为具有 0 偏移量的 Date 对象。
我正在使用的将 LocalDateTime 转换为 Date 的当前代码是:
Date.from(localDateTime.toInstant(ZoneOffset.UTC))
本地日期时间:
2016-12-07T16:29:12.218
转换为日期后:
2016-12-07T10:29:12.218-0600
是的,我看到有一个区域偏移量被传递到 toInstant 但我不确定如何做我所要求的。
更新: 我刚刚收到有关我的问题的更多信息,说要精确设置日期和 UTC 区域以使偏移量为 0。
【问题讨论】:
-
一个老式的
java.util.Date对象对时区一无所知 - 它不记得它所在的时区以及是否打印它(通过隐式或显式调用toString())它将始终使用运行它的机器的默认时区。您不能拥有位于某个时区的Date对象,因为Date根本没有能力记住这一点。在SimpleDateFormat上设置时区并使用它来格式化Date以使其显示在选择的时区中。