Java读取当前时区错误

在Eclipse中新建Java类,自动生成如下注释.


/**
* @TODO 测试当前时区
* @author yeshaoting
* @creatTime: 2010-12-12 下午11:52:10
* @belongTo: com.jarg.test
* @version 1.0
*/

其中,createTime这项为2010-12-12 下午11:52:10
比当前系统时间差不多慢了八个时间.

在网上一查,才知道是因为注册表出问题了.
将下面附件中的注册表文件导入注册表并覆盖其中注册表文件就可以了.

分析:
未使用上述方法前,执行以下代码后.
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));    /* 修正时区 */
TimeZone.getTimeZone(new TimeZone().getID()); /* 获取当前时区相关信息 */
//TimeZone.getDefault(); /* 跟上句一样的效果,获取当前时区相关信息 */

得到结果:
sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
由id值得知,时区正确(或者说是修正过来了,因为Eclipse默认是GMT),重启Eclipse后,新建一个类进行测试,结果还是不对.

于是,按照上述方法后,问题解决.

再分析:
一切都正常后,我在程序中执行下面代码
TimeZone.setDefault(TimeZone.getTimeZone("GMT"));    /* 修正时区 */

再重启Eclipse,然后新建类测试,结果还是正确的.

不知道这是不是能得出结论:
[color=blue]Eclipse并非通过TimeZone.getDefault();或TimeZone.getTimeZone(new TimeZone().getID());来读取时区?[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值