Moment.js – 将UTC转换为东部时间

我正在使用moment-timezone.js为了通过node.js将UTC时间转换为America/New_York 。 我这样做是这样的:

 var moment = require('moment-timezone'); moment.tz.add('America/New_York|EST EDT|50 40|0101|1Lz50 1zb0 Op0'); var now = new Date().toISOString(); now = moment(now).tz("America/New_York").toDate(); 

这似乎在我的本地机器上正常工作,但是当我在AWS Lambda上运行它时, now时间仍然被输出为UTC。

我在这里做错了什么? 我真的不想用API来获得准确的纽约时间。 夏令时是这里最大的挑战。 谢谢!

我觉得这样做的方式是:

 var now = ((moment(Date.now()).utcOffset('-0500').format('x')); //Parse it into native JS object: now = new Date(parseInt(now)); 

我想指出一些事情,但是我希望能够拯救一个人,这个时间让我为此付出了沉重的代价。 我的主要问题是,亚马逊Lambda提供UTC的时间,无论我在做什么。 此问题的解决方法是简单地设置节点TZ环境variables:

 process.env.TZ = 'America/New_York';