Konwerter epoki Unix

Bieżący znacznik czasu epoch

Wiersz dziennika pokazuje 1729523412, interfejs API zwraca 1729523412000, a baza danych zapisuje 1729523412.845293. Wszystkie te wartości reprezentują ten sam moment od 1 stycznia 1970 r. według czasu UTC: pierwsza w sekundach, druga w milisekundach, trzecia w sekundach z częścią ułamkową. Ten konwerter działa w obie strony: wklej znacznik czasu, aby odczytać datę i godzinę UTC, albo podaj datę, aby otrzymać wartość epoki w sekundach lub milisekundach.

Jak przekonwertować znacznik czasu epoki

  1. 1

    Wklej znacznik czasu

    Wartość w sekundach (10 cyfr), milisekundach (13 cyfr) lub z częścią ułamkową, np. 1729523412.845293.

  2. 2

    Wybierz dokładność

    Przełącznik nad polem wprowadzania wybiera sekundy lub milisekundy. Wynik daty zachowuje ułamki sekund aż do mikrosekund.

  3. 3

    Odczytaj datę UTC

    Przeliczona wartość pojawia się w UTC w formacie YYYY-MM-DD HH:MM:SS.mikrosekundy, gotowa do skopiowania.

  4. 4

    Odwróć konwersję

    Podaj datę i godzinę w UTC, aby otrzymać wartość epoki w sekundach lub milisekundach.

Czym jest „epoka”

Czas Unix mierzy sekundy (lub ich ułamki) od 1 stycznia 1970 roku o godzinie 00:00:00 UTC, co jest znane jako epoka Unix. To dominujący, odczytywalny maszynowo znacznik czasu w oprogramowaniu:

  • Systemy POSIX: time() zwraca liczbę sekund od epoki.
  • JavaScript: Date.now() zwraca wartość w milisekundach.
  • Java: System.currentTimeMillis() zwraca wartość w milisekundach.
  • Go: time.Now().Unix() zwraca sekundy; UnixNano() zwraca nanosekundy.

Dokładność w zależności od wielkości

Liczba cyfr Dokładność Przykład
10 sekundy 1 729 523 412
13 milisekundy 1 729 523 412 000
16 mikrosekundy 1 729 523 412 000 000
19 nanosekundy 1 729 523 412 000 000 000

Ten konwerter przyjmuje sekundy, milisekundy oraz wartości z częścią ułamkową; ustaw przełącznik dokładności zgodnie z danymi wejściowymi.

Charakterystyczne znaczniki czasu

  • 0 – 1 stycznia 1970 roku o godzinie 00:00:00 UTC. Sama epoka.
  • 1 000 000 000 – 9 września 2001 o godz. 01:46:40 UTC. Popularny moment świętowania „miliardowej sekundy”.
  • 1 234 567 890 – 13 lutego 2009 r. o godz. 23:31:30 UTC.
  • 2 147 483 647 – 19 stycznia 2038 o godz. 03:14:07 UTC. Problem Y2K38: przepełnienie 32-bitowej liczby całkowitej ze znakiem.
  • 10 000 000 000 – Daleka przyszłość: 20 listopada 2286 o godz. 17:46:40 UTC.

Problem Y2K38

Systemy przechowujące czas Unix w 32-bitowej liczbie całkowitej ze znakiem przepełniają się przy 2 147 483 647 sekundach (19 stycznia 2038 roku). Nowoczesne systemy wykorzystują 64-bitowe liczby całkowite, co odsuwa ten problem daleko poza śmierć cieplną Słońca. Stare systemy wbudowane oraz stare bazy danych mogą nadal być dotknięte – sprawdź swój stos technologiczny.

Subtelności stref czasowych

Czas epoki jest z natury zgodny z UTC. Podczas konwersji na potrzeby wyświetlania stosujesz strefę czasową:

  • Nazwa IANA (America/Los_Angeles, Europe/Berlin): automatycznie obsługuje czas letni.
  • Przesunięcie (-08:00, +05:30): stałe przesunięcie, bez uwzględniania DST.
  • Skrót (PST, CEST): niejednoznaczny; różne regiony używają tych samych skrótów. Unikaj ich przy przechowywaniu.

Zasady DST zmieniają się w czasie. Historyczny znacznik czasu w America/New_York używa zasad DST obowiązujących w danym dniu, a nie zasad dzisiejszych. Ten konwerter zawsze wyświetla czas UTC. Aby zobaczyć dany moment w Twojej strefie, zinterpretuj wynik UTC za pomocą nazwy IANA lub stałego przesunięcia.

ISO 8601 w porównaniu z RFC 2822

Dla czasów oznaczeń w formatach danych:

  • ISO 8601 (2024-10-21T14:30:12Z): preferowany współczesny standard, sortowalny, jednoznaczny.
  • RFC 2822 (Mon, 21 Oct 2024 14:30:12 +0000): stosowany w nagłówkach HTTP oraz wiadomościach e-mail.

Dla wyświetlania użytkownikom: format lokalny zgodny z ich konwencjami regionalnymi.

Praca z sekundami przestępnymi

Czas POSIX nie uwzględnia sekund przestępnych; po wstawieniu sekundy przestępnej po cichu cofa się o jedną sekundę. TAI (Międzynarodowy Czas Atomowy) natomiast je uwzględnia. W przypadku większości kodu aplikacji POSIX jest poprawny; w astronomii, geodezji oraz pomiarach czasu o wysokiej dokładności należy używać TAI lub UTC z uwzględnieniem sekund przestępnych.

Najczęściej zadawane pytania

Sprawdź przełącznik dokładności: wartość w milisekundach (13 cyfr) odczytana jako sekundy daje datę bardzo daleko w przyszłości. Narzędzie zawsze wyświetla czas UTC; porównaj wynik z lokalnym przesunięciem, zanim przeliczysz.

Tak. Narzędzie akceptuje ujemne znaczniki czasu, które reprezentują daty sprzed epoki Unix. 31 grudnia 1969 roku o godzinie 23:59:59 UTC to -1.

Zapisuj epokę (UTC) oraz nazwę strefy czasowej IANA jako oddzielne pola. ISO 8601 z przesunięciem (np. 2024-10-21T14:30-07:00) zawiera to przesunięcie, ale traci możliwość ponownej interpretacji przy zmienionych zasadach DST. Do zapisu kanonicznego używaj nazw IANA.

Nie. Wartość jest wysyłana na serwer wyłącznie w celu wykonania konwersji i nie jest zapisywana ani rejestrowana. Narzędzie zlicza konwersje anonimowo, bez wartości.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach