Heroku - NodeJS不能将日期转换为UTC

时间:2016-03-07 01:08:38

标签: javascript node.js heroku momentjs utc

我需要在当地时间创建一个日期并将其转换为UTC以保存在数据库中。

我在本地环境和Heorku上有以下代码:

// node dateTest.js

var moment = require('moment-timezone');
var timeZone = 'Pacific/Auckland';

var date = moment('20160101235959', 'YYYYMMDDHHmmss').tz(timeZone);

var UTCdate = date.utc().toISOString();

console.log(UTCdate);

当我在本地运行时,我得到:

2016-01-01T10:59:59.000Z

哪个是正确的UTC时间。但是当我在Heorku实例上运行时,我得到了:

2016-01-01T23:59:59.000Z

最后是Z的文字日期。

为什么会这样?我无法弄明白。 :(

NodeJS v5.1.0

2 个答案:

答案 0 :(得分:1)

我查看了java -jar path_to_designer_1.jar -regen path_to_resfile.res 的文档,您可以通过两种不同的方式使用它。而不是moment-timezone,你可以使用第二种方式。我会按如下方式更改您的代码:

utc()

答案 1 :(得分:0)

由于您的应用程序可以在世界任何地方运行,因此Heroku应用程序的默认时区是UTC(因此它可以在不同时区的dynos中保持一致)。您可以运行以下命令到set a time zone

heroku config:add TZ="America/Los_Angeles"