Moment.js - 将 UTC 时间转换为东部时间
Moment.js - Converting UTC To Eastern Time
我正在使用 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));
我想指出一些事情,但我希望能帮别人省下这让我负担重重的日子。我的主要问题是无论我在做什么,Amazon Lambda 都在提供 UTC 时间。此问题的解决方法是简单地设置 Node TZ 环境变量:
process.env.TZ = 'America/New_York';
首先,安装moment timezone and install all of the timezones by using timezone-with-data.js
or specifically only load the timezones you need
如果您知道某个日期是 UTC 时间并想将其转换为东部时间,请使用 moment.utc()
函数实际解析 UTC 日期字符串。然后当你调用 .tz()
时它会正确转换:
moment.utc(date_string).tz("America/New_York")
如果您只是简单地执行 moment(date_string).tz("America/New_York")
,默认情况下系统会按照您当地的时区解析时间,并且不会调整日期。
东部标准时间 (EST) 比协调世界时 (UTC) 晚 5 小时。
使用 moment.js,您可以从 UTC 时区减去 5 小时。
moment.utc().subtract(5, 'hours').format("YYYY-MM-DD HH:mm:ss.SSS")
或者
如果您愿意添加另一个库,例如moment-timezone
。您可以只使用:
moment().tz("America/New_York").format("YYYY-MM-DD HH:mm:ss.SSS")
我正在使用 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));
我想指出一些事情,但我希望能帮别人省下这让我负担重重的日子。我的主要问题是无论我在做什么,Amazon Lambda 都在提供 UTC 时间。此问题的解决方法是简单地设置 Node TZ 环境变量:
process.env.TZ = 'America/New_York';
首先,安装moment timezone and install all of the timezones by using timezone-with-data.js
or specifically only load the timezones you need
如果您知道某个日期是 UTC 时间并想将其转换为东部时间,请使用 moment.utc()
函数实际解析 UTC 日期字符串。然后当你调用 .tz()
时它会正确转换:
moment.utc(date_string).tz("America/New_York")
如果您只是简单地执行 moment(date_string).tz("America/New_York")
,默认情况下系统会按照您当地的时区解析时间,并且不会调整日期。
东部标准时间 (EST) 比协调世界时 (UTC) 晚 5 小时。
使用 moment.js,您可以从 UTC 时区减去 5 小时。
moment.utc().subtract(5, 'hours').format("YYYY-MM-DD HH:mm:ss.SSS")
或者
如果您愿意添加另一个库,例如moment-timezone
。您可以只使用:
moment().tz("America/New_York").format("YYYY-MM-DD HH:mm:ss.SSS")