最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间。
我的机子的JVM经常时区出错,每次用导入注册表的方法恢复,但是不长久,而且在C系统中很正常。后来在程序代码中加入设置默认时区的方法解决:
TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8");
//将JVM的默认时区设为东部+8时间,也就是北京时间
TimeZone.setDefault(tz);
这样程序中的时区不再受影响。