【发布时间】:2021-08-31 08:45:35
【问题描述】:
我有一个 Java 时间戳值,例如:1799-12-31 19:03:58.0 当我尝试使用代码将其转换为 OffsetDateTime 时:
timestamp.toLocalDateTime().atZone(ZoneId.systemDefault()).toOffsetDateTime();
它给我的输出是:
1799-12-31T19:03:58+05:53:28
在前端(Angular 的日期管道)没有解析。 但是相同的代码返回时间戳的不同偏移量:2019-08-24 10:15:22.0 as:
2019-08-24T10:15:22+05:30
哪个是有效的,并且被 Angular 的日期管道成功解析。
我不明白为什么它在“1799-12-31 19:03:58.0”日期返回不同的偏移量。
【问题讨论】:
-
The output is technically correct. 您有想要的输出吗?您的前端实际上期望什么?您正在为前端提供服务器的系统时区。这看起来不对……前端应该关心服务器的系统时区吗?如果没有,您可以使用
Instant。 -
另见this,我在其中列出了 tzdb 中记录的从 1700 到 2000 的所有时区变化。
标签: java offsetdatetime