问题是由java.util.Date类代表1921年5月1日的午夜

ser*_*gtk 3 java datetime date

我想用java.util.Date类代表午夜.为了检查这个,我输出这个值并获得意想不到的结果.

代码如下:

Calendar calendar = new GregorianCalendar(1921, 4, 1, 0, 0);
Date date2 = calendar.getTime();
System.out.println(date2);
Run Code Online (Sandbox Code Playgroud)

我获得以下输出:

Sun May 01 00:20:08 EET 1921
Run Code Online (Sandbox Code Playgroud)

但我希望得到

Sun May 01 00:00:00 EET 1921
Run Code Online (Sandbox Code Playgroud)

这种行为的原因是什么?

目前我正在欧洲/赫尔辛基时区测试我的代码.

jar*_*bjo 11

您为什么不直接查看您所在国家/地区的时区历史记录?几天前你问了一个类似的问题.芬兰有一个非常奇怪的时区GMT + 1:39:52直到1921年4月30日.从5月1日开始,他们改为GMT + 2:00,并从23:59:59跳到00:20:08.

  • +1晦涩难懂的参考知识 - 我很惊讶它将它考虑在内!:) (2认同)