此问题为项目中偶遇,原案例:
//获取当前系统时间,格式为yyyy-MM-dd HH:mm:ss
TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8");
TimeZone.setDefault(tz);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
ParsePosition pos = new ParsePosition(0);
Date now =new Date();
String tCurrentdate = df.format(now );
Date tCurrentdates = df.parse(tCurrentdate, pos);
Date类型now值为:Mon Dec 14 12:57:35 GMT+08:00 2015
字符串类型tCurrentdate值为 2015 12 14 03:04:59,与当前时间差了8个小时
解决办法:增加时区,把时区设置为北京时区
即增加代码
TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8");
TimeZone.setDefault(tz);
解决后代码如下:
//获取当前系统时间,格式为yyyy-MM-dd HH:mm:ss
TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8");
TimeZone.setDefault(tz);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
ParsePosition pos = new ParsePosition(0);
Date now =new Date();
String tCurrentdate = df.format(now );
Date tCurrentdates = df.parse(tCurrentdate, pos);