在Javascript中获取时区的UTC偏移量

2022-01-16 00:00:00 timezone javascript datejs

我需要一个给定时区的 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 to America/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 a Date object.

但如果您希望它用于特定时区,那么您将需要使用 我在此处列出的库之一.

But if you want it for a specific time zone, then you will need to use one of the libraries I listed here.

相关文章