首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用鲁迅检测时区缩写

用鲁迅检测时区缩写
EN

Stack Overflow用户
提问于 2020-05-26 10:26:52
回答 2查看 8.2K关注 0票数 9

矩时区的结果是短时区缩写,例如

代码语言:javascript
复制
moment.tz([2012, 0], 'America/New_York').format('z');    // EST
moment.tz([2012, 5], 'America/New_York').format('z');    // EDT

有没有类似的方法,我们可以用鲁迅实现这一点?

我尝试了offsetNameShort,但是,结果是GMT+5:30获得了"2020-05-23T13:30:00+05:30"这样的约会

DateTime.fromISO(""2020-05-23T13:30:00+05:30"").toFormat('z')这样的东西也不起作用

有办法从格式中删除+5:30时区吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-26 16:27:25

回顾鲁迅格式化符号表。您希望ZZZZ用于缩写的名偏移量。

示例:

代码语言:javascript
复制
DateTime.fromObject({year: 2012, month: 1, zone: 'America/New_York'})
  .toFormat('ZZZZ') //=> "EST"

DateTime.fromObject({year: 2012, month: 6, zone: 'America/New_York'})
  .toFormat('ZZZZ') //=> "EDT"

DateTime.local()
  .toFormat('ZZZZ') //=> "PDT"  (on my computer)

DateTime.fromISO("2020-05-23T13:30:00+05:30", {zone: 'Asia/Kolkata', locale: 'en-IN'})
  .toFormat('ZZZZ') //=> "IST"

注意,在最后一个例子中,您还必须指定en-IN作为获取IST的区域设置。否则,您将得到GMT+05:30,除非系统区域设置已经是en-IN。这是因为鲁迅依赖于浏览器的国际化API,而这些API又从CLDR获取其数据。

在CLDR中,许多名称和缩写被指定为特定地区的名称和缩写,而不是在世界范围内使用。在Europe/London获取GMT+1而不是BST时也会发生同样的事情,除非区域设置是en-GB。(我个人不同意这一点,但这就是目前执行的方式。)

票数 14
EN

Stack Overflow用户

发布于 2022-01-11 19:48:48

只是简单地使用

代码语言:javascript
复制
const shortDate = new Date().toLocaleTimeString('en-us',{timeZoneName:'short'});
console.log(shotrDate.split(' ')[2]); // EST
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62019992

复制
相关文章

相似问题

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