Javascript 返回带有时刻的时区名称';s猜测()

Javascript 返回带有时刻的时区名称';s猜测(),javascript,timezone,momentjs,Javascript,Timezone,Momentjs,我想使用返回时区大陆(或国家)和城市,如示例中所示: moment.tz.guess(); // America/Chicago 但上述方法不起作用。返回的值是CET,这是另一个值。它是中欧时间的缩写,即没有大陆国家,没有城市 如何使用guess() moment.tz([2012, 0], 'America/New_York').zoneAbbr(); // would return "EST" 以下是参考资料: 当主机环境(浏览器等)实现ECMA-402的API但在结果中返回错误类型的时

我想使用返回时区大陆(或国家)和城市,如示例中所示:

moment.tz.guess(); // America/Chicago
但上述方法不起作用。返回的值是
CET
,这是另一个值。它是中欧时间的缩写,即没有大陆国家,没有城市


如何使用
guess()

moment.tz([2012, 0], 'America/New_York').zoneAbbr(); // would return "EST"
以下是参考资料:

当主机环境(浏览器等)实现ECMA-402的API但在结果中返回错误类型的时区时,会发生这种情况。如果你在瞬间看到了这一点,你也可能在没有瞬间的情况下通过以下方式得到这个结果:

Intl.DateTimeFormat().resolvedOptions().timeZone
目前,矩假设如果这个API存在,它要么提供有效的IANA时区标识符,要么返回
未定义的
。但是,正如您所指出的,有些环境会返回类似于
CET
的内容


忽略错误结果已记录为中的功能请求。在这种情况下,环境是安卓设备上的旧Chrome浏览器。

我知道我做这件事已经很晚了,但我正在寻找同一问题的答案。对于其他寻找相同答案的人,使用以下方法应该有效:

moment.tz.guess()

作为参考,我同时使用和,只使用简单的
moment.tz.guess()
将为我返回完整的时区名称,即:
America/Denver
America/New_York
,等等。

尝试使用
moment.format('Z')
,您将得到
-05:00
或其他信息。然后根据预定义的地图将其映射到CET或您正在使用的任何东西。

如果我想要缩写,那就太好了,但是我想要“美国/纽约”。你知道如何返回名称而不是缩写吗?你是对的,我误解了你的问题,对不起。你试过了吗?
Intl
来自哪里?@Pipo-它内置于现代浏览器中。