Intl.DateTimeFormat.prototype.resolvedOptions()

基线 广泛可用

此功能已得到很好的建立,并且可以在许多设备和浏览器版本中使用。它自以下时间以来一直可在各种浏览器中使用: 2017 年 9 月.

resolvedOptions() 方法是 Intl.DateTimeFormat 实例的方法,它返回一个新对象,该对象包含反映在此 Intl.DateTimeFormat 对象初始化期间计算出的区域设置和日期和时间格式选项的属性。

试一试

语法

js
resolvedOptions()

参数

无。

返回值

一个新对象,包含反映在给定 Intl.DateTimeFormat 对象初始化期间计算出的选项的属性。该对象具有以下属性,按列出顺序排列:

locale

实际使用的区域设置的 BCP 47 语言标签。输出中可能仅包含 cahcnu Unicode 扩展键。

calendar

其中一个 受支持的日历类型,反映 options 参数或 ca Unicode 扩展键中为此属性提供的值。默认值取决于区域设置。

numberingSystem

其中一个 受支持的数字系统类型,反映 options 参数或 nu Unicode 扩展键中为此属性提供的值。默认值取决于区域设置。

timeZone

其中一个 IANA 时区名称,反映 options 参数中为此属性提供的值。默认值为运行时的默认时区;不应为 undefined

注意:虽然 IANA 数据库会不时更改,但 Unicode CLDR 数据库(浏览器使用)出于稳定性目的保留了旧的时区名称。所有浏览器都规范化时区名称,但方向不同。例如,new Intl.DateTimeFormat("en-US", { timeZone: "Europe/Kiev" }).resolvedOptions().timeZonenew Intl.DateTimeFormat("en-US", { timeZone: "Europe/Kyiv" }).resolvedOptions().timeZone 将在同一个浏览器中返回相同的字符串,但在不同的浏览器中可能返回不同的字符串。有关更多信息,请参阅 Intl.Locale.prototype.getTimeZones

hourCycle

options 参数中为此属性提供的值,或在 Unicode 扩展键 "hc" 中提供的值,并根据需要填写默认值。仅当 options 参数包含 hourtimeStyle 时才存在。

hour12

options 参数中为此属性提供的值,或从 hourCycle 属性计算出的值。仅当 options 参数包含 hourtimeStyle 时才存在。

weekdayerayearmonthdaydayPeriodhourminutesecondfractionalSecondDigitstimeZoneName

options 参数中相应属性与所选区域设置中日期时间格式的可用组合和表示之间格式匹配的结果值。某些属性可能不存在,表示格式化输出中不会显示相应的组件。如果在 options 中使用了 dateStyletimeStyle 快捷方式,则这些单个组件属性将永远不存在。

dateStyletimeStyle

如果存在,则为 options 参数中为此属性提供的值。

描述

尽管 dateStyletimeStyle 是单个日期和时间组件样式的快捷方式,但它们解析到的确切(取决于区域设置)组件样式不包含在已解析的选项中。这确保了 resolvedOptions() 的结果可以直接传递给 Intl.DateTimeFormat() 构造函数(因为包含 dateStyletimeStyle 以及单个日期或时间组件样式的 options 对象无效)。

示例

使用 resolvedOptions 方法

js
const germanFakeRegion = new Intl.DateTimeFormat("de-XX", { timeZone: "UTC" });
const usedOptions = germanFakeRegion.resolvedOptions();

usedOptions.locale; // "de" (because "de-XX" does not exist)
usedOptions.calendar; // "gregory"
usedOptions.numberingSystem; // "latn"
usedOptions.timeZone; // "UTC"
usedOptions.month; // "numeric"

获取用户的时区和区域设置首选项

不带任何选项的 Intl.DateTimeFormat 构造函数使用当前系统设置。您可以使用 resolvedOptions() 获取用户的当前时区和区域设置的首选日历和数字系统

js
const systemOptions = new Intl.DateTimeFormat().resolvedOptions();
systemOptions.timeZone; // e.g., "Europe/Brussels" or "Asia/Riyadh"
systemOptions.calendar; // e.g., "gregory" or "islamic-umalqura"
systemOptions.numberingSystem; // e.g., "latn" or "arab"
systemOptions.locale; // e.g., "nl-BE" or "ar-SA"

规范

规范
ECMAScript 国际化 API 规范
# sec-intl.datetimeformat.prototype.resolvedoptions

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅