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

相關文章
相關標籤/搜索