首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Moment.js -将UTC转换为东部时间

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

Stack Overflow用户
提问于 2016-02-13 18:38:45
回答 3查看 20.2K关注 0票数 6

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

代码语言:javascript
复制
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时间仍然以协调世界时的形式输出。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-16 15:50:09

我解决这个问题的方法是:

代码语言:javascript
复制
var now = ((moment(Date.now()).utcOffset('-0500').format('x'));
//Parse it into native JS object: 
now = new Date(parseInt(now));

不过,我想指出一些东西,我希望这能节省一些人的时间,这让我背上了沉重的负担。我的主要问题是Amazon Lambda提供UTC时间,无论我在做什么。此问题的修复方法是只需设置Node TZ环境变量:

代码语言:javascript
复制
process.env.TZ = 'America/New_York';
票数 8
EN

Stack Overflow用户

发布于 2018-06-28 06:02:48

首先,使用timezone-with-data.jsspecifically only load the timezones you need安装moment timezone并安装所有时区

如果您有一个已知为UTC格式的日期,并且希望将其转换为东部时间,请使用moment.utc()函数实际解析UTC日期字符串。然后,当你对它调用.tz()时,它将正确地转换为:

代码语言:javascript
复制
moment.utc(date_string).tz("America/New_York")

如果您只是简单地执行moment(date_string).tz("America/New_York"),那么默认情况下,时间将按照您的本地时区进行解析,并且不会调整日期。

票数 9
EN

Stack Overflow用户

发布于 2020-02-09 15:28:12

东部标准时间(EST)比协调世界时(UTC)晚5小时。

使用moment.js,您可以从协调世界时的时区中减去5小时。

代码语言:javascript
复制
moment.utc().subtract(5, 'hours').format("YYYY-MM-DD HH:mm:ss.SSS")

如果您愿意添加另一个库,如moment-timezone。您可以只使用:

代码语言:javascript
复制
moment().tz("America/New_York").format("YYYY-MM-DD HH:mm:ss.SSS")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35378831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档