我的日期如下:
05/30/2014 11:21:37 AM
我的用户将输入该数据并拥有自己的时区.它可能是"美国/东方","美国/太平洋 - 新"等等.我想将时间转换为UTC,但我无法做到.有办法吗?
我正在使用节点,我尝试了momentJS并阅读以下内容:
如何从不同的时区转换为UTC?
编辑
我试过这些:
moment().utc(0).format('YYYY-MM-DD HH:mm Z')
moment.tz(dateString, "US/Eastern").format()
Run Code Online (Sandbox Code Playgroud)
在上面的例子中dateString
是字符串日期.我想将时区设置为"US/Eastern"并将其转换为UTC.
Mat*_*int 23
// 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"
Run Code Online (Sandbox Code Playgroud)
请注意,我使用相同的输出格式作为输入格式 - 如果您愿意,可以改变它.
如果您愿意,也可以在一行中完成所有操作:
var s = moment.tz(input, fmt, zone).utc().format(fmt);
Run Code Online (Sandbox Code Playgroud)
另外,请注意我使用了区域/位置格式(America/New_York
),而不是旧US/Eastern
样式.这应该是首选,因为US/*仅用于向后兼容目的.
此外,US/Pacific-New
永远不应该使用.它现在只是一样US/Pacific
,只是指向America/Los_Angeles
.有关此历史的更多信息,请参阅tzdb源代码.
归档时间: |
|
查看次数: |
20328 次 |
最近记录: |