使用Moment Timezone(javascript)将UTC转换为太平洋时间

时间:2014-10-01 04:34:33

标签: javascript angularjs timezone momentjs

我正在尝试设置" formattedLocalTime"太平洋时间和我的4行代码如下所示。

虽然chrome调试器显示" locTime" as" 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")

2 个答案:

答案 0 :(得分:1)

您可以一步完成:

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"

答案 1 :(得分:0)

尝试使用:

var formattedLocalTime = locTime.format("MM/DD/YYYY h:mm a")

如果您写下片刻(locTime),那么您的日期时间将转换回当地时间