【问题标题】:OffsetDateTime with different offsets into OffsetDateTime with UTC (Zulu) [duplicate]具有不同偏移量的 OffsetDateTime 与 UTC(祖鲁语)的 OffsetDateTime [重复]
【发布时间】:2020-02-03 04:00:23
【问题描述】:

我在我的数据库中保存了不同偏移量的值,例如

`2018-03-26T03:00:00+03:00`
`2018-03-26T03:00:00+02:00`

我想将它们解析为 base 值,该值应该偏移 0,以便进行更轻松的比较,但同时也让日期保持真正人类可读(这意味着我想保留 Offset,而不是例如即时)。

如何将带有偏移量的OffsetDateTime 解析为+00 偏移量(称为UTCZULU)并使用正确的日期传输(我的意思是,不仅将2 更改为0,而且还计算日期和时间正确)。

【问题讨论】:

    标签: java time java-8 timezone utc


    【解决方案1】:

    知道怎么做就很容易了:

        String dateTimeFromDatabase = "2018-03-26T03:00:00+03:00";
        OffsetDateTime dateTime = OffsetDateTime.parse(dateTimeFromDatabase)
                .withOffsetSameInstant(ZoneOffset.UTC);
        System.out.println("With offset 0: " + dateTime);
    

    输出是:

    偏移量为 0:2018-03-26T00:00Z

    我不明白你为什么介意收到Instant。它打印为2018-03-26T00:00:00Z。唯一的区别是即使是00,也会包含秒数。

    链接: Documentation of OffsetDateTime.withOffsetSameInstant()

    【讨论】:

      猜你喜欢
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 2018-06-02
      • 1970-01-01
      • 2015-08-19
      相关资源
      最近更新 更多