gpt4 book ai didi

Java OffsetDateTime 返回错误的偏移量

转载 作者:行者123 更新时间:2023-12-04 14:35:14 25 4
gpt4 key购买 nike

我有一个 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 作为:
2019-08-24T10:15:22+05:30
这是有效的并且成功地被 Angular 的日期管道解析。
我不明白为什么它为“1799-12-31 19:03:58.0”日期返回不同的偏移量。

最佳答案

简答:历史 .
从奇怪的判断 05:53:28偏移量,您当前的区域是 Asia/Calcutta ← 好吧,这个时区已经重命名为 Asia/Kolkata .
Back in 1799 ,每个城市都有自己的本地时间,这就是为什么这个偏移量很奇怪的原因。时区经常因政治决策而改变,Java 从每个 Java 版本随附的时区数据中获取这些数据。
所以那些不同的偏移实际上是正确的。
如果您的前端无法解析这个奇怪的偏移量,那么您需要修复您的前端。

更多信息和类似观察:

  • Why is subtracting these two times (in 1927) giving a strange result?
  • DateFormatter gives weird timezone for very old dates
  • Providing date string with offsets (+0530) vs specifying timezone separately in display name (Asia/Calcutta)
  • Java OffsetDateTime returning wrong offset
  • 关于Java OffsetDateTime 返回错误的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68995551/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com