当前位置: 首页 > 知识库问答 >
问题:

JAVA时间瞬间atZone(…)在遥远的过去,回归疯狂的价值观

沈博涉
2023-03-14

在将遥远的过去的瞬间转换为ZoneDateTime时,我检测到以下输出。

代码为单元测试:

   @Test
public void testParseDate() {
    Instant instant = Instant.parse("0000-12-30T07:00:00Z");
    System.out.println(instant);
    System.out.println(instant.atZone(ZoneId.of("Europe/Berlin")));

    instant = Instant.parse("1800-12-30T07:00:00Z");
    System.out.println("---------------------------------");
    System.out.println(instant);
    System.out.println(instant.atZone(ZoneId.of("Europe/Berlin")));

    instant = Instant.parse("1900-12-30T07:00:00Z");
    System.out.println("---------------------------------");
    System.out.println(instant);
    System.out.println(instant.atZone(ZoneId.of("Europe/Berlin")));
}

输出:

0000-12-30T07:00:00Z
0000-12-30T07:53:28+00:53:28[Europe/Berlin]
---------------------------------
1800-12-30T07:00:00Z
1800-12-30T07:53:28+00:53:28[Europe/Berlin]
---------------------------------
1900-12-30T07:00:00Z
1900-12-30T08:00+01:00[Europe/Berlin]

在前两个输出中,时间是07:53:28 00:53:28,最后一个输出是08:00 01:00[欧洲/柏林]。也许根本原因是,在前两个例子中,时区的东西还不存在,但00:53:28的偏移量真的很奇怪。知道偏移量“00:53:28”来自哪里吗?

共有2个答案

董高朗
2023-03-14

时区、夏令时以及所有这些恼人而奇特的功能在20世纪初并不存在。

时间有许多“变化”,比如臭名昭著的荷兰时间,它比世界协调时提前了大约19分钟,主要是基于一座塔的时钟,它只是提前了那么多时间。

我不知道德国和柏林的时差究竟来自哪里,但这是一个已知的偏移量(可能基于与荷兰时间类似的原因)。

你可以看到它是如何随时间演变的。

韩喜
2023-03-14

因为历史。

1893年4月1日,时区从本地平均时间(LMT)调整为中欧时间(CET),将时钟调整了6分32秒。

由于政治决定,时区会定期改变,但那些奇怪的数字,如6分32秒,往往是从当地平均时间移动到标准时间的结果。

许多已知的历史变化都是在时间和日期上发现的。com和柏林特别是https://www.timeanddate.com/time/zone/germany/berlin.

 类似资料:
  • 本书是一部真实再现程序员成长历程的原创小说,以作者的学习、工作、生活为原型,分为大学、工作、创业三部分,环环相扣,精彩迭出,其中作为主线的实际项目案例都基于作者深厚的技术积淀。本书生动描写了软件行业中的形形色色的人和事,形象而深刻、生动而亲切,充满了智慧的职场警句,能让不同职业的读者都受益匪浅。

  • 我试图解决以下问题:给定N个时间间隔,每个时间间隔指定为(开始,结束),不重叠,根据开始排序——找到一个包含给定日期的时间间隔。例如: 3人进入第一节,15人进入第四节,以此类推。 到目前为止,我有以下基本想法: 我们可以使用二进制搜索来找到相应的间隔(logn) 由于可能只有少数时间间隔较大,其余时间间隔较小,因此根据时间长短对itervals进行排序可能是值得的。然后,在统计上,大多数情况下,

  • 然后,绝影的眼中流露出一片憧憬,他缓缓地说:“知道吗?我的第一份工作,也就是在周总的公司。那天面试完后周总送我回去,他问我:‘你的理想是什么?’我告诉他:‘我希望以后有一天能有一家自己的真正的软件公司。’当周总听到那句话的时候,我发现他的脸色变得很难看。是啊,他不是正经营着一家软件公司么?或许每个老板都是这样想的,希望他的员工能一心一意地呆在公司,希望他们能把他的公司当成他们自己的,希望他们能全心

  • 我正在尝试将spree store安装到我的应用程序中,当我在终端中输入时,我收到以下错误: 来源https://rubygems.org 宝石“轨道”、“4.2.5.1” 宝石'pg','~ gem'sass rails','~ 宝石“丑陋的” 宝石咖啡轨道 gem'jquery rails' gem“涡轮链接” 宝石jBuilder 创业板“sdoc”~ 小组:开发,:测试 调试器控制台gem

  • 问题内容: 我有一个价值,我想得到另一个正好是1个月前的时间。 我知道可以用(想要另一个)进行减法,但这会导致a,而我反过来需要它。 问题答案: 尝试AddDate: 产生: 游乐场:http://play.golang.org/p/QChq02kisT

  • --编辑 再考虑一下,我怀疑NPE来自返回null的rsrqs.get(),我认为java试图在装箱返回整数之前将其解框为int。integer.valueOf()强制Java执行unbox-box步骤。故事的寓意;不要只是忽略Eclipse中的那些拳击警告;)