无法使用矩时区进行时区缩写

问题描述 投票:0回答:1

我正在使用moment-timezone来获取用户时区的缩写。以下是用于查找缩写的代码

var timeZone = moment.tz.guess(true);
var time = new Date();
var timeZoneOffset = time.getTimezoneOffset();
var abbr  = moment.tz.zone(timeZone).abbr(timeZoneOffset);
alert(timeZone+": " + abbr);

此警报在几个时区都很好。但是对于时区America/La_Paz,我的缩写为-04。我需要更新代码还是有其他方法来获取正确的缩写(如3个字符)?

预先感谢!

javascript angular momentjs timezone-offset moment-timezone
1个回答
0
投票

您的代码正确,但是moment-timezone并未存储所有时区的字母缩写:

enter image description here

相比于美国/洛杉矶:

enter image description here

America / La_Paz实际上默认在矩时区中,没有字母缩写,只有UTC-4。

您可以通过以下方式将此缩写更改为所需的缩写:

var pazZone = moment.tz.zone("America/La_Paz");
pazZone.abbrs = ["BOT"]
moment.tz([2012, 5], 'America/La_Paz').format('z'); // => BOT
© www.soinside.com 2019 - 2024. All rights reserved.