具有不同偏移量的 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()
我在我的数据库中保存了不同偏移量的值,例如
`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()