java web/tomcat项目中Date类获取时间不正确的问题

这两天做一个web项目,数据库中有个字段为上次登录的时间,所以需要在用户登录的时候记录下时间 没用calendar 用了Date类,突然发现system.out.println(date)的时候时间比北京时间晚了8个小时(还是早了,反正是差8个小时) 仔细一看系统时间 完全正确,当时以为是jdk sb了下 调试了半天发现怎么都不对

而新建一个java project ,system.out.println(date)的结果却完全正确

后来才知道是tomcat服务器 默认时区问题

解决方法大体有2种

 

-》Date   date=new   Date();

DateFormat   formatter=DateFormat.getDateTimeInstance(); //得到一个指定时区(中国是东8区的)的DateFormat 对象
TimeZone   timezone=TimeZone.getTimeZone( "GMT+08:00 "); //实例化时区对象
formatter.setTimeZone(timezone);
System.out.println(formatter.format(date));  //输出格式化后的时间

-》修改tomcat文件下的bin/catalina 文件 用记事本打开

找到set JAVA_OPTS=

改成 set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx800m -Duser.timezone=GMT+08


你可能感兴趣的:(java web/tomcat项目中Date类获取时间不正确的问题)