我的数据库中保存的值具有不同的偏移量,例如
`2018-03-26T03:00:00+03:00`
`2018-03-26T03:00:00+02:00`
我想将它们解析为base
值,该值应偏移为0,以便进行更轻松的比较,同时又使日期真正可读(这意味着我想保留Offset而不是例如即时)。
如何使用正确的日期传输(我的意思是,不仅将2更改为0,而将具有偏移量的OffsetDateTime
解析为+00
偏移量(称为UTC
或ZULU
) ,还可以正确计算日期和时间。
答案 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
,秒也包括在内。