我有一个欧洲/莫斯科时间在我的Mageia 4java zoneinfo有什么问题?
这样
System.out.println(new java.util.Date());
System.out.println(System.getProperty("user.timezone"));
回报
Fri Oct 24 13:43:22 GMT+03:00 2014
GMT+03:00
如果我设置系统日期在2014年10月24日
代码且该代码返回
Sun Oct 26 14:44:26 GMT+03:00 2014
GMT+03:00
如果我在26.10.2014设置系统日期
以我的观点来看,它是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());
,并返回
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]
和
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]
为什么会这样?为什么在这两种情况下抵消是相同的?
tzupdater显示它正在更新到哪个版本? – 2014-10-31 12:06:14
挂起 - 如果你的'user.timezone'值只是“GMT + 03:00”,那么是的,它将始终显示GMT + 03:00 ...因为它不*使用欧洲/莫斯科。所以这是'user.timezone'正在被填充的地方,而不是当前的数据库。 – 2014-10-31 12:07:39
tzupdater在2014i版本中更新区域。 – wolandec 2014-10-31 12:27:12