java获取的本机时间比当前时间少8小时的解决方案

在不更改机器时区的情况下改变一个特定应用程序的时区(多种方法):

 

1、

TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
TimeZone.setDefault(tz);

 

2、

java -Duser.timezone=UTC TimeZoneTip 
java -Duser.timezone=Asia/Shanghai 

 

3、

针对tomcat,修改其catalina.bat 对应set JAVA_OPTS = -Duser.timezone=Asia/Shanghai 

新增 -Duser.timezone=Asia/Shanghai 这句既可 。

 

4、代码中

     Date utilDate = new java.util.Date();

     SimpleDateFormat myFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取中国的时区
     myFmt.setTimeZone(timeZoneChina);//设置系统时区
     return myFmt.format(utilDate);


 

你可能感兴趣的:(java,tomcat,Date,timezone)