Tomcat中new Date()相差8个小时的各种方案及探索(二)
试想,能够在程序中控制为北京时间,这样具有更好的移植性.但经过尝试都不成功,估计原因还是Tomcat得到默认时区和语言环境获仍然是原来的.换句话说tomcat这个时间依赖于操作系统,如果系统时间不对,程序里是无法控制的.SimpleDateFormat txtDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 直接new一个Date对象Date date1 = new Date();System.out.println(txtDate.format(date1));//Calendar cal = Calendar.getInstance(new SimpleTimeZone(8,"GMT"));Date date2 = cal.getTime();System.out.println(txtDate.format(date2));//Calendar bjTime= Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));Date date3 = bjTime.getTime();System.out.println(txtDate.format(date3));//java.util.Locale locale = java.util.Locale.getDefault();java.util.Date date4 = new java.util.Date();SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss",locale);System.out.println(sdf.format(date4));上面的代码在tomcat上运行,仍然相差8个小时.Calendar serverDateNextHour=Calendar.getInstance(Locale.CHINA);DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.CHINA);serverDateNextHour.add(Calendar.HOUR_OF_DAY, 1);
页:
[1]