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

win7 32位上 java取系统时间

2012-11-01 
win7 32位下java取系统时间? ?? ? ?近来遇到一个很神奇的问题,同样的代码在别人机器跑的很好,在我的电脑上

win7 32位下 java取系统时间

? ?? ? ?近来遇到一个很神奇的问题,同样的代码在别人机器跑的很好,在我的电脑上就不行。于是四处查找原因。


最后终于查出原因了,顺便与大家分享下。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?

?原因:我的电脑是64位win7 ,今年新出的本本。三个版本的jdk下测试结果如下:

?

import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class test {public static void main(String[] args) {Calendar c = Calendar.getInstance();System.out.println(c.getTimeZone());Date date = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String tmpDate = df.format(date);System.out.println(tmpDate);//JDK1.5.0.06sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
   2011-06-26 11:41:52  时间错误了  应该是2011-06-26 19:41:52  差 了8个小时 ?
//JDK1.5.0.22 X64sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]2011-06-26 19:39:24//JDK1.5.0.22 X86sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]2011-06-26 19:40:14}
}?             

??另外,如果是 jdk 1.5 的话,那用 java -version 看一下 java 的版本号,根据 Sun 提供的资料,对应于 Windows 系统,JDK 1.5 最小的版本号:


Windows 7, Windows 2008 R2, Windows Vista SP2, Windows 2008 SP2 需要?jdk1.5.0_21?及以后版本
Windows 2008 需要 1.5.0_19 及以后版本
Windows Vista 需要 1.5.0_14 及以后版本

JDK 1.6 系统支持最小的版本号

Windows 7 需要 1.6.0_14 及以后版本
Windows Server 2008 R2 需要 1.6.0_16 及以后版本 ? ? ?


解决方案:


1. ? ? ? 暂时解决的办法是:在jvm参数设置 ?-Duser.timezone=Asia/Shanghai

2. ? ? ?更换jdk版本为大于jdk1.5.0_21

3. ? ? 修改注册表 ?参考http://blog.csdn.net/Nonetracer/archive/2010/07/07/5718796.aspx




?

?

热点排行