在Javascript中获取时区的UTC偏移量
我需要一个给定时区的 Javascript 函数,返回当前的 utc 偏移量.
I need a Javascript function that given a timezone, returns the current utc offset.
例如,theFuncIneed('US/Eastern') -> 240
For example, theFuncIneed('US/Eastern') -> 240
有什么想法吗?
谢谢
推荐答案
一般来说,这是不可能的.
US/Eastern
是时区的标识符.(它实际上是America/New_York
的别名,是真正的标识符.)
US/Eastern
is an identifier for a time zone. (It's actually an alias toAmerica/New_York
, which is the real identifier.)
240
是一个时区偏移量.它通常写成 -04:00
(反转符号,除以 60).
240
is a time zone offset. It's more commonly written as -04:00
(Invert the sign, divide by 60).
美国东部时区由东部标准时间和东部夏令时间组成,东部标准时间具有 -05:00
的偏移量,东部夏令时间具有-04 的偏移量:00
.
The US Eastern Time Zone is comprised of both Eastern Standard Time, which has the offset of -05:00
and Eastern Daylight Time, which has the offset of -04:00
.
所以说 US/Eastern
= 240 一点也不准确.请阅读 timezone 标签wiki,尤其是标题为Time Zone != Offset"的部分.
So it is not at all accurate to say US/Eastern
= 240. Please read the timezone tag wiki, especially the section titled "Time Zone != Offset".
现在您确实要求 当前 偏移量,这 是 可能的.如果您提供日期+时间参考,则可以解决此问题.
Now you did ask for the current offset, which is possible. If you supply a date+time reference, then you can resolve this.
对于执行 javascript 代码的计算机的本地时区,这是使用
.getTimeZoneOffset()
内置于任何Date
实例的对象.
For the local time zone of the computer where the javascript code is executing, this is built in with
.getTimeZoneOffset()
from any instance of aDate
object.
但如果您希望它用于特定时区,那么您将需要使用 我在此处列出的库之一.
But if you want it for a specific time zone, then you will need to use one of the libraries I listed here.
相关文章