如何从 javascript Intl.DateTimeFormat 获取时区缩写

2024-03-05

我正在尝试使用 ECMA-402 国际 API 来获取非本地时区的时区缩写(服务器时区是 UTC)。我知道其他方法可以得到这个。我试图了解国际 API 的局限性并充分利用它。我可以获取完整的时区名称并自己进行映射,但由于缩写位于 IANA tz 数据库中,并且国际 API 应该基于此,因此似乎应该能够生成它们,这让我觉得我是做错事。

我有以下代码:

    const fmt = new Intl.DateTimeFormat('en', {
        year: 'numeric',
        month: '2-digit',
        day: '2-digit',
        hour: '2-digit',
        minute: '2-digit',
        second: 'numeric',
        fractionalSecondDigits: 3,
        hour12: false,
        weekday: 'short',
        timeZoneName: 'short',
        timeZone: 'Pacific/Auckland' 
    });

    const now = new Date();
    console.log(fmt.format(now));

    const fmt2 = new Intl.DateTimeFormat('en', {
        year: 'numeric',
        month: '2-digit',
        day: '2-digit',
        hour: '2-digit',
        minute: '2-digit',
        second: 'numeric',
        fractionalSecondDigits: 3,
        hour12: false,
        weekday: 'short',
        timeZoneName: 'short',
        timeZone: 'America/Los_Angeles' 
    });

    console.log(fmt2.format(now));

在节点 12.16.1 和 Firefox 73.0.1 中,这都会产生如下输出:

Wed, 04/08/2020, 18:14:50 GMT+12
Tue, 04/07/2020, 23:14:50 PDT

America/Los_Angeles 时区按预期获取时区缩写,但 Pacific/Auckland 时区则不然。 IANA tz 数据库包含 Pacific/Auckland 的缩写,操作系统 (Debian Linux) 生成它们。

我可以采取什么不同的措施来从 International API 获取缩写吗?或者这只是最先进的技术?

我注意到 luxon 和 date-fns-tz 都依赖于国际 API,并且它们也无法生成 Pacific/Auckland 的缩写。


ECMAScript 国际化 API 的大多数实现都从以下位置派生时区缩写字符串统一码CLDR http://cldr.unicode.org/,不是来自 IANA。 IANA 中的缩写只有英文,近年来许多缩写已被删除,但人们发现它们是发明出来的。

不幸的是,CLDR 数据集中实际包含的时区缩写非常少。

一般来说,时区缩写很难达成一致。在某些情况下,同一时区会使用多个缩写。有些文化改用英语缩写,而另一些文化则有自己的语言缩写,而许多文化根本不使用它们。

鉴于这一切,我想说你仍然应该使用 Intl API 给出的输出。在有缩写可用的地方,您将拥有它们,在没有缩写的地方,您将有一个数字偏移量。是的 - 这就是当前的技术水平。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 javascript Intl.DateTimeFormat 获取时区缩写 的相关文章

  • 使用 AT TIME ZONE 获取指定时区的当前时间

    我正在尝试使用新的在 SQL Server 2016 和 Azure SQL 中 我只是想获取伦敦的当前时间datetime 针对夏令时进行调整 运行以下所有命令时 伦敦时间为凌晨 3 27 点 第一步是获得一个datetimeoffset
  • 在 Node.js 中生成带条形码的 pdf

    我在用https github com devongovett pdfkit https github com devongovett pdfkit生成 PDF 文件 我可以简单地使用类似的方法 app get get pdf req re
  • 在有限的上下文中运行 JS 代码

    我正在尝试奔跑trusted 隔离 上下文中的 JS 代码 基本上想出了这个方法 function limitedEval src context return function with this return eval src call
  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • JavaScript 字符串中的脚本标签[重复]

    这个问题在这里已经有答案了 我遇到一个问题 即 JavaScript 中带引号的字符串内有结束脚本标记 并且它正在杀死脚本 我认为这不是预期的行为 可以在这里看到这样的示例 http jsbin com oqepe edit http js
  • 获取被调用的 javascript 文件的查询字符串

    是否可以在调用的 javascript 文件上使用 javascript 获取查询参数 如下所示 in html in file js console log this location query 这是否可能以某种方式实现 或者我必须使用
  • Javascript 进程是否有多个执行线程?

    背景 我正在创建一个 地址簿 类型的应用程序 有很多条目需要加载 一个想法是首先加载一小部分条目 让用户开始 然后将剩余条目排队 优先考虑用户单击的条目 例如 如果他们单击以 X 开头的名称 请先加载这些名称 然后再处理队列的其余部分 这个
  • Javascript 将对象推送为克隆

    我将 d3 用于交互式网络应用程序 我需要绑定的数据在交互过程中发生变化 并且由 JSON 变量中的一些选定对象组成 为此 我在 JSON 变量上使用了映射 并进行了一些查询来选择适当的对象 对象被推送到列表中 并且该列表被绑定为新数据 我
  • 从选择 onChange 调用 javascript 函数 [重复]

    这个问题在这里已经有答案了 所以我有一个简单的 HTML 选择框和一个 javascript 警报功能 我希望选择框有一个 onchange 事件来调用 javascript 警报函数 这是我到目前为止所拥有的 HTML div Type
  • 检测 Webkit/Chrome 中 HTML5 数字控件更改的事件?

    HTML5 为我们提供了一些新的输入元素 例如
  • 如何将一个数组中的所有项目复制到另一个数组中?

    如何将数组的每个元素 其中元素是对象 复制到另一个数组中 以便它们完全独立 我不想更改一个数组中的元素来影响另一个数组 这里的关键是 数组中的条目是对象 并且 您不希望对一个数组中的对象的修改显示在另一个数组中 这意味着我们不仅需要将对象复
  • 通过 JavaScript 单击按钮/页面提交

    我想了解 asp net 框架如何知道何时单击了按钮 因此一旦收到请求 就会在服务器上触发其单击事件 我需要了解它是如何工作的 因为我想从 JavaScript 触发按钮的服务器单击事件 我能够从 JavaScript 执行页面提交 doc
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • Svelte 条件元素类报告为语法错误

    我正在做一个if块每if 块的精简指南 https svelte technology guide if blocks 这看起来很简单 但 Svelte 认为这是一个语法错误 svelte plugin ParseError Unexpec
  • 如何从 CSS 选择器中提取类名?

    故事 我目前正在构建一个 ESLint 规则 以警告在 CSS 选择器定位器中使用引导布局导向和角度技术类 目前我在字符串方法中使用简单的子字符串 for var i 0 i lt prohibitedClasses length i if
  • 为什么 call 比 apply 快那么多?

    我想知道是否有人知道why call比apply 在 Chrome 中 速度大约快 4 倍 在 Firefox 中快 30 倍 我什至可以制作自定义原型 apply2 在大多数情况下 运行速度是apply 这个想法取自角度 Function
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • iPhone - UIImageView 中的中心 UIImage

    我有一个 UIImageView 我从 URL 获取 UIImage 图像显示在 UIImageView 中 但我无法使其正确居中 UIImage 为 80 x 68 像素 UIImaveView 的大小为 90 x 90 当我在 UIIm
  • 如何使用来自不同 ViewController 的 JSON 响应填充 UITableView?

    我在 stackoverflow com 上进行了谷歌搜索 但无法摆脱这种情况 如何使用 GET 的响应来填充 TableView 我发送 GET 并在 DetailViewController 我的主控制器 中的方法中解析响应 并希望使用
  • 选择 LINQ 中 JOIN 后的所有列

    我有两张桌子 Table1 and Table2 我想执行左外连接 var myOutput from object1 in Table1 join object2 in Table2 on object1 Property1 equals
  • 批处理文件日/月/年语法?

    我找不到用于提取当前日 月 年的批处理文件语法的简单细分 我有以下语法来声明用作目录名称的变量 set folder date 10 4 date 7 2 date 4 2 任何人都可以阐明 或发布链接 波浪号 双百分比的含义吗 我似乎无法
  • 在 Android 4.x 上 touchmove 后 Touchend 未触发?

    我正在用 Javascript 编写一些代码 如下所示 var el document getElementById some div el ontouchstart function e el innerHTML touch start
  • 处理具有共同属性但不同对象类型的对象的方法

    我有大量自动生成的对象 尽管它们都是不同的 不相关的类 但所有对象都共享一些基本属性 名称 id 等 我无法控制这些对象的生成 因此不幸的是我无法采取实现接口的理想方法 我想创建一种方法 在其中传递这些对象中的任意一个 并使用这些公共属性执
  • 在 Intellij 中查找 lombok 生成的构造函数的用法

    我有一个带有 lombok 注释的类 Value or Data 并且我正在寻找一种简单的方法来查找自动生成的构造函数的用法 我现在能做的就是找到构造函数的一种用法 将光标放在那里并运行 查找用法 命令 然后我得到我想要的结果 不过我想直接
  • Zurb Foundation _global.scss js 元样式?

    我当时正在开发一个 Foundation 5 项目 结果发现该项目有一个过时的 global scss 组件 我试图得到范围滑块 http foundation zurb com docs components range slider h
  • 如何使用 pymongo 获取 mongo 实例中所有数据库的列表

    如何使用 pymongo 将 mongo 实例中所有数据库的列表获取到变量 例如使用 pymongo 将以下命令发送到 mongo 实例 db adminCommand listDatabases 1 Use 数据库名称 https api
  • 装饰器在 Nest 控制器中返回 404

    我正在使用 NestJS 开发后端 顺便说一句 这很棒 我有一个 标准获取实体情况的单个实例 类似于下面的示例 Controller user export class UserController constructor private
  • 为什么在全新项目(xcode 3.1.4)上不调用 dealloc?

    我开始学习 iPhone 编程 这显然是一个非常简单的问题 我在 xcode 3 1 4 中工作 现在 当我创建一个基于窗口的应用程序的新项目并修改 dealloc 在 AppDelegate m 文件中 以便它实际上在控制台上生成打印语句
  • 使用带有无限参数的函数进行柯里化

    假设我有以下 add 函数 它接受无限数量的参数 function add var total 0 var args Array prototype slice call arguments 0 for var i 0 i
  • 如何在Javascript中计算两个日期之间的年和月?

    有没有办法计算 Javascript 中两个不同日期之间的年数 也考虑闰年 和月份数 这是我知道的获得年份和月份的最佳方法 Assumes Date From df and Date To dt are valid etc var df n
  • 集成 Paytm 支付网关 Android

    我正在尝试将 paytm 的支付网关集成到我的 Android 应用程序中 我似乎在他们的网站上找不到任何适当的文件或程序 我已经通过谷歌检查了这方面的每一条线索 但没有帮助 尝试通过邮件和电话联系 Paytm 团队 没有回复 现在我被困在
  • PySpark + Cassandra:获取分区键的不同值

    我正在尝试获取 pyspark 中 cassandra 表的分区键的不同值 然而 pyspark似乎不理解我并完全迭代所有数据 很多 而不是查询索引 这是我使用的代码 对我来说看起来非常简单 from pyspark sql import
  • 将 geom_bar 添加到圆形图 ggplot2

    我有一个数据框 如下所示 dat lt structure list x 1 14 y c 1 26071476002898 1 97600316441492 2 41629009067185 3 48953782319898 10 8 4
  • 使用覆盖率,我如何测试这条线?

    我有一个简单的测试 class ModelTests TestCase def test method self instance Activity title Test self assertEqual instance get appr
  • gwt-ext 和 ext-gwt 之间的区别

    我是在服用疯狂的药物 还是这两件事几乎相同 到目前为止 我已经在这两个框架上花费了大量时间 我想说它们并不 几乎相同 虽然它们可能都使用相同的图形资源 但它们实现这一目标的方式非常不同 根据您的需求 开发风格 您可能会发现其中一种比另一种更
  • nvidia驱动、cuda驱动和cuda工具包之间有什么关系?

    在nvidia驱动包中 有libcuda so cuda驱动和nvidia驱动一样吗 cuda工具包和libcuda so之间有什么关系 来自cuda文档 http docs nvidia com cuda cuda c programmi
  • 如何从 javascript Intl.DateTimeFormat 获取时区缩写

    我正在尝试使用 ECMA 402 国际 API 来获取非本地时区的时区缩写 服务器时区是 UTC 我知道其他方法可以得到这个 我试图了解国际 API 的局限性并充分利用它 我可以获取完整的时区名称并自己进行映射 但由于缩写位于 IANA t