2013-03-07 10 views

Odpowiedz

6

Adustacja między czasem lokalnym a czasem UTC jest oparta na przesunięciu określonym jako liczba milisekund.

http://es5.github.com/#x15.9.1.7 mówi

15.9.1.7 lokalnej strefy czasowej Regulacja

Przewiduje się, że realizacja ECMAScript określić dostosowanie lokalnej strefy czasowej. Lokalna regulacja strefy czasowej to wartość LocalTZA mierzona w milisekundach, która po dodaniu do UTC reprezentuje lokalny czas standardowy. Czas letni nie jest odzwierciedlany przez LocalTZA. Wartość LocalTZA nie zmienia się w czasie, ale zależy tylko od położenia geograficznego.

o tym, kiedy jest to użyteczne, http://bugs.python.org/issue5288 wyjaśnia problem związany API, które powstały od zakładając, że przesunięcia strefy czasowej były całkowitą liczbą minut:

Baza strefa czasowa Olson (używany przez większość systemów UNIX i Mac OS X) ma wiele stref czasowych z historycznymi przesunięciami, które używają drugiej rozdzielczości (przed przełączeniem tych lokalizacji na zaokrąglone przesunięcie z GMT).

Po przejściu do drugiej rozdzielczości, brak getUTCMillis wydaje się dziwną asymetrią.

+2

Zabawne, że przesunięcie jest określone jako ** milisekundy ** na * * dodaj ** do UTC, ale metoda 'getTimezoneOffset' zwraca wartość w ciągu ** minut **, która musi ** zostać odjęta ** z UTC, aby uzyskać czas lokalny. Czy nie uwielbiasz autorów prac specjalnych? – RobG

+0

Teraz dopiero zdajesz sobie sprawę, jak może wyglądać mylące czasy i strefy czasowe. – Matt

+1

@RobG, Tak, ale JavaScript miał obiekt Date zanim miał specyfikację :) –

0

ponieważ są leap seconds.

+0

JavaScript nie honoruje sekund przestępnych. Zobacz definicje 'msFromTime' i' secFromTime' w [specyfikacja języka] (http://es5.github.com/#x15.9.1.10) –

Powiązane problemy