首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java在vista下的时间有关问题

2011-12-24 
java在vista下的时间问题今天工作时,发现一个以前能工作的程序出了点问题:用java取出的时间,比系统时间早

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 ......

热点排行