DateUtils.formate()函数的“bug”

 写在前面

项目功能测试, 日期格式转换出现个诡异的问题, 转换后的时间老是和系统当前时间相差8小时, 问题是另外一个项目和这个代码彻底同样, DateUtils.java, 包括formatDate()方法, 但是结果让我郁闷半天.java

测试代码

public static void main(String[] args) {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String s = DateUtils.formatDate(date, Constants.DD_MM_YYYY_HH_MM_SS_DOT);
String s1 = DateUtils.formatDate(date, Constants.SIMPLE_YYYY_MM_DD_HH_MM_SS_SSS);
String s2 = DateUtils.formatDate(date, "yyyy-MM-dd HH:mm:ss");

System.out.println(s);
System.out.println(s1);
System.out.println(s2);
System.out.println(simpleDateFormat.format(date));
}

输出结果

看下面的输出时间, 直接蒙了...apache

17.10.2019 11:03:49
20191017110349987
2019-10-17 11:03:49
2019-10-17 19:03:49工具

缘由分析

缘由

导错 DateUtils工具类的包, 本应想导入的是自定义的DateUtils.java, 路径为import org.jeecgframework.core.util.DateUtils;开发工具

实际导入的是import org.apache.http.client.utils.DateUtils;测试

 

 

查看代码

org.apache.http.client.utils.DateUtils;取出的时间是GMT, 所以取出的时间老是比系统时间(北京时间)小8小时. GMT+8才是北京时间.spa

 

 

从新导包后正常结果:code

sms_txt中的时间是转为String类型后的日期时间.orm

 

小结

开发工具虽然好用, 但import时仍是要细心.blog

相关文章
相关标签/搜索