Different date time formatting output on java & moment j

Different date time formatting output on java & moment js

本文关键字:amp moment java on date time formatting output Different      更新时间:2023-09-26

我们有一个要求,我们希望在服务器端代码中使用一致的日期-时间格式&移动客户端上的javascript代码。我们决定使用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’XYZ'HH:MM:ss.SSSZZ"。Java输出:2015-02-06TYZ03:28:24.333+000,力矩输出:2015-02-06'T1423193658Y+05:30'09:04:18.351+0530

有人能给我一个解决方案,或者一个更好的替代方案吗。

您可以使用与java兼容的ZonedDateTime,使用矩和格式:

moment(this.date).format('YYYY-MM-DDTHH:mm:ss:SSZ')

var format="YYYY-MM-DD'T'HH:MM:ss.SSZ"

设置格式时,请尝试去掉"T"周围的引号。