首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用moment-timezone获取时区的长偏移量名称

使用moment-timezone获取时区的长偏移量名称
EN

Stack Overflow用户
提问于 2020-08-24 14:07:11
回答 1查看 225关注 0票数 2

luxon库添加了此功能以获取offsetNameLong访问权限。to timezone ianaName,提供特定于区域设置的已转换区域名称。例如

代码语言:javascript
复制
DateTime.local().setLocale("en-US").setZone("America/Los_Angeles").offsetNameLong // prints Pacific Daylight Time
DateTime.local().setLocale("ja-JP").setZone("America/Los_Angeles").offsetNameLong // prints アメリカ太平洋夏時間

由于luxon对IE浏览器的支持较少(除非使用polyfills),所以我想使用moment-timezone做一些类似的事情。我只是好奇moment-timezone是否提供了类似的功能来做同样的事情,或者是否有任何其他替代方案来实现这一功能。

EN

回答 1

Stack Overflow用户

发布于 2020-08-24 14:16:06

看起来moment.js不支持时区的长名称,但是提供了一种自定义的方式来使用长名称,而不是zoneAbbr()返回的缩写。

参考https://momentjs.com/timezone/docs/#/using-timezones/formatting/

代码语言:javascript
复制
var abbrs = {
    EST : 'Eastern Standard Time',
    EDT : 'Eastern Daylight Time',
    CST : 'Central Standard Time',
    CDT : 'Central Daylight Time',
    MST : 'Mountain Standard Time',
    MDT : 'Mountain Daylight Time',
    PST : 'Pacific Standard Time',
    PDT : 'Pacific Daylight Time',
};

moment.fn.zoneName = function () {
    var abbr = this.zoneAbbr();
    return abbrs[abbr] || abbr;
};

moment.tz([2012, 0], 'America/New_York').format('zz');    // Eastern Standard Time
moment.tz([2012, 5], 'America/New_York').format('zz');    // Eastern Daylight Time
moment.tz([2012, 0], 'America/Los_Angeles').format('zz'); // Pacific Standard Time
moment.tz([2012, 5], 'America/Los_Angeles').format('zz'); // Pacific Daylight Time
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63555541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档