如何通过Zulu格式传递日期,这样他们将无论TimeZone如何工作

时间:2016-09-30 16:50:10

标签: javascript angularjs date datetime

我将日期传递给执行多个进程的后端函数。我有用户报告说他们从不同的时区(更具体地说是海外,但是来自沿海地区的其他人)也遇到了失败。因此,我尝试将我的日期/时间格式化为ZULU时间,以便让这些用户无论时区如何都能获得成功。

以下是我为解决问题而传递给函数的格式。 05小时的那个工作正常,但是00(这是我理解为时区不可知的那个)失败了。

这次失败 1960-08-02T00:00:00:000Z

这项工作 1960-08-02T05:00:00.000Z

有人可以通过一些日期转换javascript经验告诉我为什么会出现这种情况吗?

谢谢, 乙

2 个答案:

答案 0 :(得分:3)

因为两者的格式不同:

1960-08-02T00:00:00:000Z
                   ^ colon
1960-08-02T05:00:00.000Z
                   ^ period

您应该使用后一种格式(另请参阅the spec),您也会发现1960-08-02T00:00:00.000Z也会被接受。

答案 1 :(得分:1)

任何JavaScript日期都可以使用toISOStringtoJSON转换为正确的UTC(Zulu)格式:

new Date().toISOString();
//"2016-09-30T16:56:51.654Z"