请问,java取时间方法:Calendar.getInstance().getTime(),再利用SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");进行格式化
一般情况都没有遇到问题
现在在windows server 2008上遇到问题,显示时间和机器时间显示不相符,测试看了看,也没规律
请问有什么办法可以解决吗?
是2008的一个BUG?
一般情况都没有遇到问题
现在在windows server 2008上遇到问题,显示时间和机器时间显示不相符,测试看了看,也没规律
请问有什么办法可以解决吗?
是2008的一个BUG?
label.setText(“时间”+ sdf.format(Calendar.getInstance().getTime()));
这是代码
也是今天才遇到这个问题
这个代码一致没事啊
都部署了很多机器了
并将windows的时区设置为 GMT+08:00 也就是北京时区
谢谢各位的回答
参考上面的帖子
正在解决问题中
解决后我会把解决方式贴上来
稍等
再次感谢
先贴上来
Date nowTime = new Date();
SimpleDateFormat matter1 = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss z ");
matter1.setTimeZone(TimeZone.getTimeZone( "GMT+8")); //这行最为关键
System.out.println( "现在的时间 " + matter1.format(nowTime));
分析一下:
如果没有第三行代码,默认时区为CST格式,在XP上显示时间正确,但在Windows Server 2008上有问题
测试后发现,通过通常的方法Locale.getDefault()或者TimeZone.getDefault()在Windows Server 2008始终显示时区为GMT +0,无法获得真正的时区
现在通过第三行代码,指定采用GMT+8时区的时间显示
解决不理想,原因有二:
1、原有代码需要变动,若客户转换时区,还需要在属性档添加新的属性
2、代码里指定时区,而不是通过通常的办法,让代码自行获得所在的时区先不结贴,看是否有朋友能再帮我解答一下
谢谢了
回复:8楼和11楼的朋友提供的方法,通过Locale.CHINA指定,没有效果,在2008上仍然显示GMT+0的时间,不是GMT+8的时间
安装JDK最新版本 JDK 6 UPDATE 10后,成功!
代码不需要更改
OH YEAH!