具有不同偏移量的 OffsetDateTime 与 UTC(祖鲁语)的 OffsetDateTime

OffsetDateTime with different offsets into OffsetDateTime with UTC (Zulu)

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

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

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

如何使用正确的日期传输(我的意思是,不只是更改 2变成 0,而且还能正确计算日期和时间)。

知道怎么做就很容易:

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

输出为:

With offset 0: 2018-03-26T00:00Z

我不明白你为什么介意得到一个 Instant。它打印为 2018-03-26T00:00:00Z。唯一的区别是秒数包括在内,即使它们是 00.

Link: Documentation of OffsetDateTime.withOffsetSameInstant()