JS中使用Eurpe/London时区获取伦敦时间时报Invalid timezone specified错误
问题根源定位
- 报错的核心诱因是时区参数拼写错误:代码中传入的
Eurpe/London将标准拼写的Europe误写为Eurpe,少写了字母o。 - JS中
toLocaleString的timeZone参数仅支持IANA时区数据库收录的合法标识,拼写错误的字符串不在合法列表内,因此直接抛出未捕获的RangeError。 - 此前使用
America/New_York能正常运行,是因为该时区字符串的拼写完全符合规范,没有出现偏差。
修复方案
将错误的时区字符串替换为标准的Europe/London即可,修正后的可运行代码如下:
const str2 = new Date().toLocaleString('en-US', { timeZone: 'Europe/London' }); uk_time = str2.split(" ")[1]; console.log(uk_time)
小提示:同类时区报错的绝大多数诱因都是拼写偏差,排查时可优先核对大洲、城市名的拼写是否和标准IANA时区格式一致,无拼写问题的时区字符串在现代浏览器环境中均可正常解析。
内容的提问来源于stack exchange,提问作者coderboy
相关产品推荐
相关产品推荐

