Node.js nodejs/moment-dev/server之间的时区不同

Node.js nodejs/moment-dev/server之间的时区不同,node.js,momentjs,Node.js,Momentjs,我们目前在将MomentJ转换为时区时遇到了一些问题。在本地Windows计算机上设置为EST时,一切正常。当切换到Ubuntu测试服务器时,日期会被utcOffset小时数抵消。更改Ubuntu框上的时区没有明显的效果 我们正在打电话 router.get("/report/date", (req, res) => { var delayInfo = { sendDate: moment().format("YYYY-MM-DD"), sendTi

我们目前在将MomentJ转换为时区时遇到了一些问题。在本地Windows计算机上设置为EST时,一切正常。当切换到Ubuntu测试服务器时,日期会被utcOffset小时数抵消。更改Ubuntu框上的时区没有明显的效果

我们正在打电话

router.get("/report/date", (req, res) => {
    var delayInfo = {
        sendDate: moment().format("YYYY-MM-DD"),
        sendTime: moment().format("HH:mm"),
        repeatDuration: 0,
        repeatType: 0,
        sendTimeZone: "Canada/Eastern"
    };

    var _sendDate = null;
    if (delayInfo.sendDate !== null) {
        _sendDate = moment.tz(delayInfo.sendDate + " " + delayInfo.sendTime, "YYYY-MM-DD HH:mm", delayInfo.sendTimeZone);
    }
    res.status(200).send(_sendDate);
});
在开发机器上,我们得到了预期的结果:

"2017-05-05T20:24:00.000Z"
在Ubuntu/Linux机器上,我们可以

"2017-05-06T00:25:00.000Z" 
节点:7.9.0 时刻:2.17.1


提前感谢

看起来它正在将时间转换为ISO-8601,并认为时间是UTC。我可以通过调用.format()绕过这个问题

其中输出日期,包括偏移量:

'2017-05-05T10:49:000-04:00'

这仍然给了我同样的问题。在我的开发机器上
2017-05-05T05:11:000-04:00
在服务器上
2017-05-05T09:12:000-04:00
设置发送日期和发送时间时,尝试:矩.utc().format(“YYYY-MM-DD”)和矩.utc().format(“HH:MM”)强制将它们全部转换为utc,然后将其用作基础,在两台机器上给出相同的结果。谢谢亚伦
'2017-05-05T10:49:000-04:00'