小编wol*_*dec的帖子

java zoneinfo 有什么问题?

我的 Mageia 4 中有欧洲/莫斯科时区。

代码是这样的

System.out.println(new java.util.Date());
System.out.println(System.getProperty("user.timezone"));
Run Code Online (Sandbox Code Playgroud)

回报

Fri Oct 24 13:43:22 GMT+03:00 2014
GMT+03:00
Run Code Online (Sandbox Code Playgroud)

如果我将系统日期设置为2014年10月24日

该代码返回

Sun Oct 26 14:44:26 GMT+03:00 2014
GMT+03:00
Run Code Online (Sandbox Code Playgroud)

如果我将系统日期设置为2014年10月26日

在我看来,这是 java zoneinfo 系统的错误行为。我下载了 tzupdater 并运行它,文件 Europe/Moscow 已更新,现在其大小为 705 kB。

我尝试下面的代码:

TimeZone.setDefault(TimeZone.getTimeZone("Europe/Moscow"));
                System.out.println(new java.util.Date());
                System.out.println(java.util.TimeZone.getDefault());
Run Code Online (Sandbox Code Playgroud)

它返回

Fri Oct 24 15:10:34 MSK 2014
sun.util.calendar.ZoneInfo[id="Europe/Moscow",offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null]
Run Code Online (Sandbox Code Playgroud)

Sun Oct 26 15:32:03 MSK 2014
sun.util.calendar.ZoneInfo[id="Europe/Moscow",offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null]
Run Code Online (Sandbox Code Playgroud)

为什么这样?为什么这两种情况下的偏移量相同?

java timezone

3
推荐指数
1
解决办法
6175
查看次数

标签 统计

java ×1

timezone ×1