Czy leap seconds pokrywane przez klasy GregorianCalendar?Czy sekund przestępnych pokrywane przez Kalendarz?
Jeśli nie, czy biblioteka innych firm obsługuje to?
Czy leap seconds pokrywane przez klasy GregorianCalendar?Czy sekund przestępnych pokrywane przez Kalendarz?
Jeśli nie, czy biblioteka innych firm obsługuje to?
java.util.Date API mówi, że
”... chociaż klasa Date ma odzwierciedlać uniwersalnym czasem koordynowanym (UTC), może nie tak dokładnie, w zależności od środowiska hosta Java Maszyna wirtualna ... Większość zegarów komputerowych nie jest wystarczająco dokładna, aby odzwierciedlać rozróżnienie sekund przestępnych. "
Wiki mówi
„Ponieważ prędkość obrotowa Ziemi zmienia się w odpowiedzi na zdarzenia klimatyczne i geologiczne, UTC sekundy przestępne są nieregularnie rozmieszczone i nieprzewidywalne. Wstawienie każdej sekundzie UTC przestępnym jest zwykle zdecydował o sześć miesięcy wcześniej przez Międzynarodowa Służba Obrotu Ziemi i Systemów Referencyjnych (IERS) "
to znaczy, żadna klasa nie może wiedzieć o przyszłych decyzjach IERS.
Komentarz do javadoc IMHO, który odwraca odpowiedzialność od źle zaimplementowanej klasy. Jeśli dodaję sekundę tuż przed sekundą, czas powinien wynieść 2 sekundy, ale nie sądzę, żeby tak było. Poza tym arytmetyczna data nie ma nic wspólnego z bieżącym czasem. – Bohemian
@Bohemian Zgadzam się z tobą w pełni. A Oracle wie również o tej słabej implementacji, myślę, że właśnie dlatego w java 8 będziemy mieli nowy interfejs API Time/Date, który obsługuje również sekundy przestępne (http://jcp.org/aboutJava/communityprocess/edr/jsr310/guide- 0.7.html) –
Zobacz moją aktualizację na temat tego, co wiki mówi –
System.currentTimeMillis()
oficjalnie odnosi się do zegara systemu operacyjnego. A ponieważ wszystko, co znam, w tym Microsoft, Linux i Apple są oparte tylko na specyfikacji UNIX, ten zegar systemu java nie liczy sekund przestępnych, tylko normalna milisekunda od 1970-01-01T00: 00: 00.000Z+1 za dokładną pierwszą odpowiedź. Witamy w stackoverflow i powodzenia w projekcie! – Bohemian
Danke! Używam tego w naszym projekcie teraz, działa jak zaklęcie (tj. Poprawnie rozpoznaje, że na przykład "20150701_015960" było i "20150701_025960" nie było, prawidłowa data w Europie/Berlinie). Dokumentacja jest jednak naprawdę skąpa. – mirabilos
@mirabilos Bitte schön, o rzadkim doc, jestem naprawdę wdzięczny za wszelkie sugestie, problemy, pytania, prośba o pociągnięcie za lepszą dokumentację i tak dalej. Time4J ma tak wiele funkcji, że nie zawsze jest łatwo utrzymać dokument na tym samym poziomie, ale staram się jak najlepiej. –
Jakiej aplikacji w realnym świecie potrzebujesz, aby wymagać sekund przestępnych? Ponadto, czy nie byłoby naprawdę trudno je uwzględnić z powodu ich rzadkiego dodawania? – Makoto
Wskazuje sposób wdrożenia: http://joda-time.sourceforge.net/faq.html#leapseconds – Azodious
To była ciekawostka, ale może mieć wpływ na operacje o znaczeniu krytycznym dla czasu, takie jak handel. Sekundowe sekundy są "oficjalne", więc można je dodać do danych strefy czasowej. – Bohemian