没有 "z" 的 momentjs toISOString

momentjs toISOString without the "z"

我需要创建 ISO-8601 日期。我使用的是 momentjs

moment(my_date).toISOString()创建ISO日期,结果类似这样:

2015-03-17T15:12:38.076Z

我需要将这个日期发送到 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")

您可以使用 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。如果您确实想要在时区之间进行转换,我建议使用 momentjs 时区。

但是 moment().format(); returns 时间不是 2014-09-08T08:02:17-05:00 吗?