使用 JavaScript 获取时区名称

使用 JavaScript 获取时区名称

Get the Time Zone Name using JavaScript

使用该Intl.DateTimeFormat()方法获取时区名称,例如
Intl.DateTimeFormat().resolvedOptions().timeZoneresolvedOptions方法返回一个新对象,您可以在该对象上访问timeZone属性以获取时区名称。

索引.js
// 👇️ "Europe/Sofia" console.log(Intl.DateTimeFormat().resolvedOptions().timeZone); // 👇️ Eastern European Standard Time (en-US locale) console.log( new Date() .toLocaleDateString('en-US', { day: '2-digit', timeZoneName: 'long', }) .slice(4), ); // 👇️ Osteuropaeische Normalzeit (de-DE locale) console.log( new Date() .toLocaleDateString('de-DE', { day: '2-digit', timeZoneName: 'long', }) .slice(4), ); // 👇️ get time zone offset -120 means timezone offset is UTC+02 const offset = new Date().getTimezoneOffset(); console.log(offset); // 👉️ -120

Intl.DateTimeFormat方法返回一个对象,该

对象启用对语言敏感的日期和时间格式。

resolvedOptions方法返回一个对象,该

对象具有一个
timeZone属性,代表访问者的默认时区。

如果您需要长的本地化形式的时区名称,例如
Pacific Standard Time,请改用
toLocaleDateString
方法。

索引.js
// 👇️ Eastern European Standard Time (en-US locale) console.log( new Date() .toLocaleDateString('en-US', { day: '2-digit', timeZoneName: 'long', }) .slice(4), ); // 👇️ Osteuropaeische Normalzeit (de-DE locale) console.log( new Date() .toLocaleDateString('de-DE', { day: '2-digit', timeZoneName: 'long', }) .slice(4), );

我们传递给该方法的 2 个参数是:

  1. locales– 带有 BCP 47 语言标记的字符串或此类字符串的数组。您可以使用任何可用的语言环境,例如es-MX墨西哥或en-CA
    加拿大。
    如果您需要有关此参数的更多信息,请查看
    MDN 文档
  2. options对象,我们在其中设置daytimeZoneName属性。在MDN 文档中阅读有关该options对象的
    更多信息

timeZoneName属性表示本地化时区名称,可以设置为long或的值short

下面是timeZoneName属性值为时的输出short

索引.js
// 👇️ GMT+2 console.log( new Date() .toLocaleDateString('en-US', { day: '2-digit', timeZoneName: 'short', }) .slice(4), ); // 👇️ OEZ console.log( new Date() .toLocaleDateString('de-DE', { day: '2-digit', timeZoneName: 'short', }) .slice(4), );

我们还将day属性设置为2-digit,我们用它从字符串中切掉日期部分,只返回时区名称。

如果您需要获取时区偏移量,请使用该getTimezoneOffset()方法。

索引.js
// 👇️ get timezone offset -120 means time zone offset is UTC+02 const offset = new Date().getTimezoneOffset(); console.log(offset); // 👉️ -120

getTimezoneOffset方法返回一个日期(以 UTC 计算)与以访问者本地时区计算的相同日期之间的

差异(以分钟为单位)。

如果您得到类似 的值-120,则时区偏移量为 UTC+02。

同样,对于值-60,时区偏移量为 UTC+01。

发表评论