Jan 01

Java timezone设置问题

    上个月碰到一个问题,有一个客户在装了俺们的系统后出现时间错误问题,查了很长时间也没有查到问题所在。后来上google查了下,在sun的网站上查到有人遇到过类似的一个问题,不过那人描述的好像是jdk1.4中的,解决办法就是下载sun出的一个TZupdater的补丁包,它会修正一些时区的问题,可我们的系统用的都是jdk6,应当是不存在这样的问题的。服务器上的时间是正常的北京时间,查看了服务器上的时区设置也是东八区,操作系统是server 2003,按照我的理解jre在默认的情况下应当是去取操作系统的时区的(当然只是猜测),可以查俺们应用的log发现log4j打印出来的日志时间也是错的,跟我们的应用一样时间出现好几个小时的偏差,后来查了下好像我们的应用内用的是北美时区,最后在resin启动的参数中加了 -Dtimezone=asia/shanghai 使得在resin启动的时候就将运行时环境人工设置到asia/shanghai上来,重启resin,问题就解决了。今天又碰到同样的问题,可不同的是我无论怎样设置时区问题依然存在,有点儿搞不明白了,希望在元旦长假过后能顺利解决这个问题。