【问题标题】:Convert LocalDateTime to Date with 0 offset将 LocalDateTime 转换为具有 0 偏移量的日期
【发布时间】: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 以使其显示在选择的时区中。

标签: java date


【解决方案1】:

看起来您正在尝试将 LocalDateTime 转换为您系统区域的日期。所以,试试这个吧

Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant())

【讨论】:

    猜你喜欢
    • 2018-02-20
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2020-05-01
    • 2020-01-08
    相关资源
    最近更新 更多