繁体   English   中英

如何计算给定时区的时区偏移量

[英]how to calculate timezone offset from given timezone

我有一个案例,我试图从选定的时区计算 timezoneOffset。

我将数据库中的时间保存为 UTC 格式的示例,现在我正在根据用户的位置/时区计算时区并设置时区偏移量。

如果从哪个时区开始,我如何创建-330偏移量的映射,我想为所有时区计算它。 示例 [{ timezone: 'Australia/Sydney', offset: '660' }] 等等..

这样我就可以搜索 -330 偏移量是哪个 timeozne。

如果是哪个时区,假设-330 偏移量? 我可以在哪里创建带有偏移量和时区的映射。

示例用户 a 来自Australia/Sydney ,那么如何检查与 UTC 的时区偏移量?

请注意,我有多个时区来支持总共 30 多个时区。

我想要一些非常准确的计算。

我知道 momentjs 使用它我可以做到,但突然不知道怎么做。

与momentjs我得到Australia/Sydney的UTCoffser //660

谁能帮我在这里推算出准确的日期?

如果您的时区有IANA名称,则可以将其传递到Intl.DateTimeFormat并过滤掉并计算偏移量:

 const getUTCOffset = timezone => Intl.DateTimeFormat([], {timeZone: timezone, timeZoneName: 'shortOffset'}).formatToParts().find(o => o.type === 'timeZoneName').value.match(/\-?\d+/)[0]*60; console.log(getUTCOffset('Australia/Sydney'))


如果您在用户的浏览器中运行此代码并希望使用用户的时区,那么它就更简单了:

new Date().getTimezoneOffset()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM