没有“z”的 momentjs toISOString

leo*_*ame 7 javascript momentjs

我需要创建 ISO-8601 日期。我正在使用momentjs

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

2015-03-17T15:12:38.076Z
Run Code Online (Sandbox Code Playgroud)

我需要将此日期发送到期望日期稍有不同的 API(尽管它的文档说他们正在使用 ISO-8601):

2015-03-17T15:12:38.076-4:00 
Run Code Online (Sandbox Code Playgroud)

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

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

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

Sve*_*415 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
Run Code Online (Sandbox Code Playgroud)

指示zUTC 时间戳,API 期望与 UTC 存在差异,因此-4:00. 如果你确实想要在时区之间进行转换,我建议使用 momentjs timezone 。

但不moment().format();返回时间2014-09-08T08:02:17-05:00