读书人

java在vista下的时间有关问题

发布时间: 2011-12-24 23:03:24 作者: rapoo

java在vista下的时间问题
今天工作时,发现一个以前能工作的程序出了点问题:

用java取出的时间,比系统时间早了8小时...

代码如下:

Calendar c = Calendar.getInstance();
DateFormat df =new SimpleDateFormat( "HH:mm:ss ");
return df.format(c.getTime());

后来发现,是java设置的默认时区变成了id= "GMT ",而北京的时区应该是GMT+8:00 狂汗...

优化后代码如下:

Calendar c = Calendar.getInstance();
DateFormat df =new SimpleDateFormat( "HH:mm:ss ");
df.setTimeZone(zone);

TimeZone zone = new SimpleTimeZone(28800000, "Asia/Shanghai ");

return df.format(c.getTime());

难道是vista对jdk1.5的支持有问题?

带着这个疑问,让同事的vista试了一下,果然都是 id= "GMT " 。

这无疑是jdk1.5 在vista下的bug

不是jdk1.6是否有此问题。


[解决办法]
手动设置系统变量user.timezone就可以
java.exe ........ -Duser.timezone=GMT+8:00 ......

读书人网 >J2SE开发

热点推荐