Java时区问题的简单解决方法
【问题描述】
在Tomcat、Jetty等应用服务器上,经常会碰到控制台或者日志文件中,时间输出跟本机时间相差8小时的问题(中国是东8时区),其实是因为JVM中没有正确设置当地的时区,导致其使用缺省的0时区。这样new Date()出来的时间就跟本地差了8小时。
?
【解决方案一】(修改JVM启动参数)
在Tomcat或Jetty的命令启动行加上一个JVM参数:
-Duser.timezone=Asia/Shanghai
这样就不用修改代码了。
?
【解决方案二】(修改Jetty启动代码)
通常我在使用Jetty时,喜欢自己写一个application来启动,而不使用Jetty插件。这样的话,可以在这个application中,在启动server之前,加上一行代码:
System.setProperty("user.timezone","Asia/Shanghai");
这样也可以达到相同的目的,似乎更加方便一点。
?
------------------------ 分割线 -------------------------
朋友临时问到,来不及测试,先写上,以后有空再完善。
?