Почему Safari запутался в Date.getDay() для запуска DST в Сиднее, в часовом поясе Aus?

Safari на OSX считает, что 6 октября 2013 года - суббота в Австралии. Это не так, это на самом деле воскресенье.

Чтобы повторить эту проблему, просто установите часовой пояс в Сидней-Австралия, покройте открытую консоль dev в Safari и введите новую дату ( "2013/10/06" ). Вы получите следующее:

enter image description here

Теперь перейдите в Сиэтл-Уэст, и вы получите следующее:

enter image description here

Проблема также возникает для Мельбурна-Австралия, но не для городов на севере, таких как Брисбен (что соответствует зонирование для австралийского DST), или горстка других городов, которые я тестировал во всем мире.

Теперь так получилось, что 6 октября 2013 года - это начало летнего времени в Сиднее.. И та же ошибка сделана для других дат начала ДСТ в другие годы. Кажется, что проблема для дат конца DST не кажется. Кажется, что не существует проблем для дат начала DST в часовом поясе PDT. Кроме того, Chrome и Firefox не проявляют этой проблемы.

Я тестировал большую часть этого на двух разных компьютерах Mac: один на Snow Leopard с Safari 5.1.7 и один на Lion с Safari 6.0.2.

Итак, вопрос в том, является ли это ошибкой или существует какая-то рациональная причина для этого?

Ответы

Ответ 1

Это действительно следует считать ошибкой. Технически говорящий DST в Сиднее начинается в 2013/10/06 в 2 утра, поэтому 2AM затем становится 3AM (http://www.timeanddate.com/worldclock/clockchange.html?n=240), Похоже, Safari в этом случае думает, что вы имеете в виду 2013/10/06 в полночь - и затем возвращается на 1 час до 11 вечера в предыдущий день. Это даже не имеет смысла, потому что при 2AM часы должны идти вперед в час.

Я бы рекомендовал подать отчет об ошибке для этого, потому что вывод явно ошибочен

https://developer.apple.com/bugreporter/