转换javascript日期时区的正确方法

时间:2013-12-03 20:24:04

标签: javascript node.js api mongodb date

我正在使用以下列格式返回时间值的API:

2013:02:27T06:39:25

请注意时区缺少任何标识符。

来自API文档:

https://partner-api.groupon.com/ledger

"Transaction timestamp of the ledger entry in the affiliate's time-zone.. The format is YYYY-MM-DDThh:mm:ss.. Example 2013:02:27T06:39:25"

显然,API响应时区是EST(会员的时区)。从中获取UTC时区值以便在MongoDB数据库中存储的最佳方法是什么。

1 个答案:

答案 0 :(得分:1)

  

格式为YYYY-MM-DDThh:mm:ss ..例2013:02:27T06:39:25“

documentation example似乎有误,因为它与建议的格式不符(2013:02:27T06:39:25应为2013-02-27T06:39:25)。

该页面后面的示例响应 符合预期的格式:

"orderDate": "2012-11-21T04:57:03"

我建议使用moment-timezone - 它有一个moment.tz() constructor,它将解析日期字符串并设置预期的时区:

> var moment = require('moment-timezone');
> var orderDate = moment.tz("2012-11-21T04:57:03", "America/New_York")

> orderDate.toString()
'Wed Nov 21 2012 04:57:03 GMT-0500'

> orderDate.toISOString()
'2012-11-20T17:57:03.000Z'