我正在尝试将“formattedLocalTime”设置为太平洋时间,我的 4 行代码如下所示。
虽然 chrome 调试器将“locTime”显示为“Tue Sep 30 2014 16:17:25”,这是我期望的正确值,但最后一行中的 formattedLocalTime 是“09/30/2014 11:17 pm”,其中是 UTC 时间,而不是我设置的时区(America/Los_Angeles),它应该是“09/30/2014 4:17 pm”(4:17 而不是 11:17)
非常感谢任何建议。
var timestamp = 1412144245453; // Tue Sep 30 2014 23:17:25
var utc = moment.tz(timestamp, "Etc/UTC"); // Tue Sep 30 2014 23:17:25 (displayed in chrome debugger)
var locTime = utc.clone().tz("America/Los_Angeles"); // Tue Sep 30 2014 16:17:25 (displayed in chrome debugger)
var formattedLocalTime = moment(locTime).format("MM/DD/YYYY h:mm a")
最佳答案
您可以一步完成此操作:
moment.tz(1412144245453, 'America/Los_Angeles').format('MM/DD/YYYY h:mm a')
输出:“09/30/2014 11:17 pm”
此外,您错误地评估了该时间戳的时间。在 UTC 中,此时间戳为 2014 年 10 月 1 日上午 6:17:25。对应的太平洋时间确实是 2014 年 9 月 30 日晚上 11:17:25。
您可以使用 epochconverter.com 等网站进行检查。 ,或者在 moment.js 中像这样:
moment.utc(1412144245453).format() // "2014-10-01T06:17:25+00:00"
关于javascript - 使用 Moment Timezone 将 UTC 转换为太平洋时间 (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26134182/