我有类似以下的日期:
2014年5月30日11:21:37
我的用户将输入该数据并具有自己的时区。可能是“美国/东部”,“美国/太平洋新”等。我想将时间转换为UTC,但我不能。有办法吗?
我正在使用node,我尝试了momentJS并阅读以下内容:
http://momentjs.com/docs/
http://momentjs.com/guides/
Convert date to another timezone in JavaScript
如何从其他时区转换为UTC?
编辑
我已经尝试过这些:
moment().utc(0).format('YYYY-MM-DD HH:mm Z')
moment.tz(dateString, "US/Eastern").format()
在上面的示例中,
dateString
是字符串日期。我想将时区设置为“美国/东部”并将其转换为UTC。 最佳答案
// your inputs
var input = "05/30/2014 11:21:37 AM"
var fmt = "MM/DD/YYYY h:mm:ss A"; // must match the input
var zone = "America/New_York";
// construct a moment object
var m = moment.tz(input, fmt, zone);
// convert it to utc
m.utc();
// format it for output
var s = m.format(fmt) // result: "05/30/2014 3:21:37 PM"
请注意,我使用了与输入格式相同的输出格式-如果愿意,可以更改此格式。
如果您愿意,也可以一行完成全部操作:
var s = moment.tz(input, fmt, zone).utc().format(fmt);
另外,请注意,我使用的是Area/Locality格式(
America/New_York
),而不是较旧的US/Eastern
样式。应该优先考虑,因为US/*只是为了向后兼容而已。另外,永远不要使用
US/Pacific-New
。现在它与US/Pacific
相同,它们都都指向America/Los_Angeles
。有关此历史的更多信息,请访问see the tzdb sources。关于node.js - moment.js将日期时间从另一个时区转换为UTC,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37534398/