2015-02-06 33 views
1

我們有一個要求,我們希望在移動客戶端javascript代碼上的服務器端代碼&上使用一致的日期時間格式。我們決定使用moment.js,在客戶端進行日期格式設置。但是兩者的輸出不同步。java&moment上的不同日期時間格式輸出&moment js

Time Format String: "**YYYY-MM-DD'T'HH:mm:ss.SSSZZ**" 

Java代碼的&輸出

java.util.Date d2 = new java.util.Date(); 
    SimpeDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD'T'HH:mm:ss.SSSZZ"); 
    sdf.setTimeZone(TimeZone.getTimeZone("GMT")); 
    String formattedDate = sdf.format(d2); 
    System.out.println(formattedDate); 


Output:2015-02-06T03:28:24.333+0000 

瞬間JS輸出

var d2 = new Date(); 
    var format = "YYYY-MM-DD'T'HH:mm:ss.SSSZZ"; 
    alert(moment(d2).format(format)); 

Output: 2015-02-06'T'03:28:24.333+0000 

隨着moment.js,T是在引號來了。 相似,如果格式爲「YYYY-MM-DD'TXYZ'HH:mm:ss.SSSZZ」。 的Java輸出:2015-02-06TXYZ03:28:24.333 + 0000, 瞬間輸出:2015-02-06'T1423193658Y + 05:30'09:04:18.351 + 0530

有人建議我一個解決方案,或者更好的替代品。

+0

爲什麼你會自動認爲它會匹配Java?時刻是它自己的事情。人們使用它與各種不同的後端。 – 2015-02-06 07:48:35

回答

1

VAR格式= 「YYYY-MM-DD'T'HH:MM:ss.SSSZ」

嘗試離開過 'T',當你設置的格式周圍的報價。

+0

那麼,正如我所提到的,時間格式化程序必須在服務器端和客戶端代碼中保持一致。另外,這不僅僅是T,還可能有其他角色。 Java格式化程序只是將所有內容放在引號內。但時刻似乎並沒有這樣做。 – 2015-02-06 05:59:58

相關問題