我有一個歐洲/莫斯科時間在我的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