具有UTC(Zulu)的OffsetDateTime的不同偏移量的OffsetDateTime

时间:2019-10-04 20:17:05

标签: java time java-8 timezone utc

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

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

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

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

1 个答案:

答案 0 :(得分:2)

了解方法很简单:

    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()