momentjs toISOString没有" z"

时间:2015-03-17 15:44:06

标签: javascript momentjs

我需要创建ISO-8601日期。有了我正在使用的时刻

时刻(my_date).toISOString()创建一个ISO日期,结果类似于:

2015-03-17T15:12:38.076Z

我需要将此日期发送到API,该API期望日期略有不同(尽管文档说它们使用的是ISO-8601):

2015-03-17T15:12:38.076-4:00 

有没有办法使用momentjs或其他东西获得预期的格式?

编辑:我找到了解决方案:

moment.tz(my_date, "America/Argentina/Buenos_Aires").format("YYYY-MM-DDTHH:mm:ss.SSSZ")

1 个答案:

答案 0 :(得分:1)

你可以使用momentjs时区: http://momentjs.com/timezone/

var newYork    = moment.tz("2014-06-01 12:00", "America/New_York");
var london     = newYork.clone().tz("Europe/London");

newYork.format();    // 2014-06-01T12:00:00-04:00
london.format();     // 2014-06-01T17:00:00+01:00

z指示UTC时间戳,API期望与UTC的差异,因此-4:00。如果你确实想要在时区之间进行转换,那么时区就是我建议的方式。

moment().format();不会将时间作为2014-09-08T08:02:17-05:00返回?