关于node.js:转换javascript日期时区的正确方法

Proper way to convert javascript Date timezone

本问题已经有最佳答案,请猛点这里访问。

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

1
2013:02:27T06:39:25

请注意缺少时区标识符。

来自API文档:

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

1
"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(会员的时区)。 从此为MongoDB数据库中的存储导出UTC时区值的最佳方法是什么。


The format is YYYY-MM-DDThh:mm:ss.. Example 2013:02:27T06:39:25"

看起来这个文档示例中有一个错误,因为它与建议的格式不匹配(2013:02:27T06:39:25应该是2013-02-27T06:39:25)。

稍后该页面上的示例响应与预期格式匹配:

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

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

1
2
3
4
5
6
7
8
> 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'