修改系统时区后,不重启Tomcat而动态更新JVM时区1.自定义一个方法获取系统时区(实现原理:通过Process对象执行系统命令“date-R”获取系统时区,该命令适用于Linux系统,Windows系统下请自行查找对应命令),并将其保存至静态变量中。packagecom.juyuan.sync.tools;importjava.io.BufferedReader;importjava.io.InputStreamReader;importcom.juyuan.support.AppCommon;publicclassConvertTheTimeZone{/***获取系统时区*@authorxyl*/publicstaticvoidChangeTheTimeZone(){try{Processps=Runtime.getRuntime().exec(date-R);BufferedReaderbr=newBufferedReader(newInputStreamReader(ps.getInputStream()));StringBuffersb=newStringBuffer();Stringline;while((line=br.readLine())!=null){sb.append(line);System.out.println(line);}Stringresult=sb.toString();String[]param=result.split();System.out.println(param[5]);//System.out.println(param[5].getClass());if(param[5].trim().equals(+1100)){AppCommon.systemTimeZone=+1100;}elseif(param[5].trim().equals(+1000)){AppCommon.systemTimeZone=+1000;}}catch(Exceptione){e.printStackTrace();}}}2.在用户成功登入系统时根据步骤1获取的时区设置JVM对应的时区,对应代码如下:ConvertTheTimeZone.ChangeTheTimeZone();//设置JVM时区if(AppCommon.systemTimeZone.equals(+1100)){TimeZone.setDefault(TimeZone.getTimeZone(GMT+11));//设置JVM默认时区}elseif(AppCommon.systemTimeZone.equals(+1000)){TimeZone.setDefault(TimeZone.getTimeZone(GMT+10));}3.之后使用Datedate=newDate();获取的时间将和系统时间同步。4.至此,修改系统时区不重启Tomcat服务器而动态更新JVM时区已成功实现。