今天吃了時間格式化的大虧了,也是不懂js的時間格式化,坑了好長時間。紀念一下,長個記性與大家分享。
java的日期格式化:切記格式爲yyyy-MM-dd HH:mm:ss,這個區分大小寫。
public static void main(String[] args) {
//正確時間格式
String ddate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
//錯誤時間格式
String ddate1 = new SimpleDateFormat("yyyy-mm-dd HH:MM:ss").format(new Date());
System.out.println(ddate);
//2015-12-30 14:02:56
System.out.println(ddate1);
//2015-02-30 14:12:56
}
JS的日期格式化:切記js格式爲yyyy-mm-dd hh:mm:ss,都是小寫。嚴格區分大小寫。
(new Date()).format("yyyy-mm-dd")
"2015-12-30"
(new Date()).format("yyyy-MM-dd")
"2015-51-30"
(new Date(1451444616000)).format("yyyy-mm-dd hh:mm:ss")
"2015-12-30 11:12:36"
(new Date(1451444616000)).format("yyyy-MM-dd hh:MM:ss")
"2015-03-30 11:03:36"
錯誤出現原因:
由於存數據用的是DateTime類型的,從後臺獲取數據傳到前臺時,顯示的日期格式給1451444616000,經過yyyy-MM-dd HH:mm:ss格式化後,發現顯示時間不對,而並非通過Navicat查詢顯示的日期數據2015-12-30 11:12:36。由於js時間格式化當時用的跟java一樣,顯示了錯誤的時間,導致查不出問題。最後認真檢查了一下,才搞明白格式化不統一。
最後註明一下:
java時間格式化:
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())
js時間格式化:
(new Date()).format("yyyy-mm-dd hh:mm:ss")