使用 JavaScript 获取时区名称
Get the Time Zone Name using JavaScript
使用该Intl.DateTimeFormat()
方法获取时区名称,例如
Intl.DateTimeFormat().resolvedOptions().timeZone
该resolvedOptions
方法返回一个新对象,您可以在该对象上访问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 个参数是:
locales
– 带有 BCP 47 语言标记的字符串或此类字符串的数组。您可以使用任何可用的语言环境,例如es-MX
墨西哥或en-CA
加拿大。如果您需要有关此参数的更多信息,请查看
MDN 文档。options
对象,我们在其中设置day
和timeZoneName
属性。在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。