如果我用以下代码计算蒙得维的亚的当前本地时间:
var dt = new Date().toLocaleString("en-US", {timeZone: "America/Montevideo"})
console.log(dt);
我得到:
2015年11月29日上午9:46:10
如果我在网上查看这个时间,例如:http://www.zeitverschiebung.net/en/timezone/america--montevideo我得到:
2015年11月29日上午8:46:10
为什么会有1h的差异?
乌拉圭的时区规则在IANA时区数据的2015f版本中发生了变化,这可能是网站正在使用的数据,但我怀疑您的浏览器仍在使用相对较旧的时区数据。
2015年相关规则e:
Rule Uruguay 2006 max - Oct Sun>=1 2:00 1:00 S
Rule Uruguay 2007 max - Mar Sun>=8 2:00 0 -
2015年相当于:
Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 S
Rule Uruguay 2007 2015 - Mar Sun>=8 2:00 0 -
基本上,这意味着从2015年起,乌拉圭不实行夏令时。
笔记上写着:
# From Steffen Thorsen (2015-06-30):
# ... it looks like they will not be using DST the coming summer:
# http://www.elobservador.com.uy/gobierno-resolvio-que-no-habra-cambio-horario-verano-n656787
# http://www.republica.com.uy/este-ano-no-se-modificara-el-huso-horario-en-uruguay/523760/
# From Paul Eggert (2015-06-30):
# Apparently restaurateurs complained that DST caused people to go to the beach
# instead of out to dinner.
# From Pablo Camargo (2015-07-13):
# http://archivo.presidencia.gub.uy/sci/decretos/2015/06/cons_min_201.pdf
# [dated 2015-06-29; repeals Decree 311/006 dated 2006-09-04]
这实际上是一个非常有趣的情况!这显然是夏令时问题。事实是,乌拉圭政府决定今年取消夏令时,这导致许多网站变得过时,因为在这之前,每年10月都开始实行夏令时。
几年前,以色列也发生了一个非常类似的问题,当时政府决定改变宣布的夏令时日期,这导致自动化系统在数周内出现了许多夏令时问题。
以下是关于乌拉圭夏令时的公告:http://www.elobservador.com.uy/gobierno-resolvio-que-no-habra-cambio-horario-verano-n656787