java和moment js上不同的日期时间格式输出

sau*_*ari 4 javascript datetime momentjs

我们有一个要求,我们希望在服务器端代码和移动客户端 JavaScript 代码上使用一致的日期时间格式。我们决定使用 moment.js,在客户端进行日期格式化。然而两者的输出并不同步。

Time Format String:  "**YYYY-MM-DD'T'HH:mm:ss.SSSZZ**"
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

时刻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
Run Code Online (Sandbox Code Playgroud)

在 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

有人可以建议我一个解决方案,或者更好的替代方案。

小智 5

您可以使用 java 兼容的 ZonedDateTime 使用时刻和格式:

moment(this.date).format('YYYY-MM-DDTHH:mm:ss:SSZ')
Run Code Online (Sandbox Code Playgroud)