2013-02-12 11 views
15

Safari na OSX wierzy, że 6 października 2013 r. Jest sobotnią Australią. Nie jest, to właściwie niedziela.Dlaczego Safari jest zdezorientowany tematem Date.getDay() dla rozpoczęcia DST w Sydney, w strefie czasowej Aus?

Aby zreplikować ten problem, ustaw swoją strefę czasową na Sydney-Australia, otwórz konsolę programisty w Safari i wprowadź nową datę ("2013/10/06"). Dostaniesz to:

enter image description here

Teraz zmień Seattle-USA, a dostaniesz to:

enter image description here

Problem pojawia się również do Melbourne Australii, ale nie dla miast dalszych północ, np. Brisbane (pasuje do zoning for Australian DST) lub kilka innych miast, które testowałem na całym świecie.

Tak się składa, że ​​6 października 2013 r. To start of daylight savings time in Sydney.. I ten sam błąd dotyczy innych dat rozpoczęcia DST w innych latach. Wydaje się, że nie ma problemów z datami końcowymi DST. Wydaje się, że nie ma problemu z datami rozpoczęcia DST w strefie czasowej PDT. Ponadto Chrome i Firefox nie wykazują tego problemu.

Testowałem większość tego na dwóch różnych komputerach Mac, jeden na Snow Leopard z Safari 5.1.7 i jeden na Lion z Safari 6.0.2.

Pytanie brzmi - czy jest to błąd, czy jest jakiś racjonalny powód tego?

+1

samo zachowanie na Safari pod Win7 dla mnie – koopajah

+0

Spróbuj: 'D = new Date (" 2013-10 -06 "); d.setMinutes (d.getMinutes() + d.getTimezoneOffset()) ' –

+0

Moim hackem jest użycie' new Date (datestring + "12:00"). getDay() 'który kładzie czas solidnie w środku dnia z dala od wszystkich przełączników DST (http://www.worldtimezone.com/daylight.html). – jlarson

Odpowiedz

6

To naprawdę powinno być uznane za błąd - technicznie rzecz biorąc czas letni w Sydney rozpoczyna się w dniu 2013/10/06 o 2:00, więc 2AM staje się 3AM (http://www.timeanddate.com/worldclock/clockchange.html?n=240). Wygląda na to, że Safari w tym przypadku myśli, że masz na myśli rok 2013/10/06 o północy - a następnie wraca od 1 godziny do 11 wieczorem poprzedniego dnia. To nawet nie ma sensu, ponieważ o drugiej nad ranem zegar powinien iść do przodu o godzinę.

Polecam złożenie raportu o błędzie do tego - bo wyjście jest więc oczywiście źle

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

+1

Tak, ja złożyłem raport o błędzie. Największy powód, dla którego go umieszczam, jest taki, że każdy inny deweloper, który próbuje to rozgryźć, może mieć łatwiejszy dostęp do tych informacji ... – jlarson

+0

@jlarson Czy masz jakieś informacje od Apple, kiedy ten błąd zostanie naprawiony? Mogę go odtworzyć w Safari 7.1 i 8.0. Dzięki. – dherbolt

+0

@dherbolt - nope – jlarson

Powiązane problemy