Przejdź do treści
Ulubione

Konwerter znacznika czasu Unix

Zaktualizowano:

Przelicz znacznik czasu Unix (epoch) na czytelną datę i godzinę w czasie lokalnym i UTC albo zamień dowolną datę i godzinę na znacznik czasu Unix w sekundach lub milisekundach.

Konwersja znacznika czasu Unix

Pola danych
t
Liczba sekund (lub milisekund) od 1 stycznia 1970 00:00:00 UTC. Dla dat sprzed 1970 roku dozwolone są wartości ujemne.
Po włączeniu wynik aktualizuje się automatycznie po zmianie dowolnej wartości.

Wzór na znacznik czasu Unix

Wzór
\[ t = \left\lfloor \frac{ms}{1000} \right\rfloor \] \[ \text{Data} = 1970\text{-}01\text{-}01\ 00{:}00{:}00\ \text{UTC} + t\ \text{sekund} \] \[ t_{\text{lokalny}} = t_{\text{UTC}} + t_{\text{przesunięcie}} \]

gdzie:

  • \(t\) — znacznik czasu Unix, czyli liczba pełnych sekund, jakie upłynęły od epoki (1 stycznia 1970, 00:00:00 UTC)
  • \(ms\) — ta sama wartość wyrażona w milisekundach
  • \(t_{\text{przesunięcie}}\) — przesunięcie strefy czasowej Twojej lokalizacji względem UTC, w sekundach

Pierwszy wzór przelicza znacznik w milisekundach na sekundy; drugi definiuje, czym jest znacznik — prostą liczbą sekund dodaną do epoki; trzeci przesuwa czas UTC na Twoją lokalną strefę czasową.

Znacznik czasu Unix – przykład obliczenia

Przykład: przelicz znacznik 1735689600 (sekundy) na datę.

\[ 1735689600 \div 86400 = 20089\ \text{pełnych dni} \]

20 089 pełnych dni po 1970-01-01 daje dokładnie 2025-01-01, z zerową liczbą pozostałych sekund, więc jest to dokładnie północ:

Wynik: 2025-01-01 00:00:00 UTC. W Twojej lokalnej strefie czasowej zegar wskazuje północ plus Twoje przesunięcie UTC (np. 2025-01-01 01:00:00 dla UTC+1). W milisekundach ten sam moment to 1735689600000 ms.

Jak korzystać z kalkulatora

  1. Otwórz Kierunek konwersji i wybierz Znacznik → data i godzina albo Data i godzina → znacznik; pola wejściowe przełączą się automatycznie.
  2. Przy konwersji znacznika wpisz liczbę w pole Znacznik czasu Unix i wybierz Sekundy lub Milisekundy w polu Jednostka. Wartości ujemne działają dla dat sprzed 1970 roku.
  3. W kierunku odwrotnym ustaw Data i opcjonalnie Godzina (puste pole godziny oznacza północ). Wartości są interpretowane w Twojej lokalnej strefie czasowej.
  4. Odczytaj wyniki: Lokalna data i godzina wraz z przesunięciem UTC, Data i godzina UTC, znacznik w sekundach i milisekundach oraz linia ISO 8601 i czas względny, która pokazuje także dzień roku i dzień tygodnia.

Czym jest znacznik czasu Unix?

Znacznik czasu Unix (zwany także czasem epoki, epoch time lub POSIX time) to liczba sekund, jakie upłynęły od 1 stycznia 1970, 00:00:00 UTC — tzw. „epoki uniksowej”. Zamiast zapisywać datę jako osobne pola roku, miesiąca, dnia i strefy czasowej, komputery przechowują jedną liczbę całkowitą, która rośnie o 1 co sekundę. Znacznik 0 to sama epoka; 1735689600 to dokładnie 55 lat później, a ujemne znaczniki liczą wstecz daty sprzed 1970 roku.

Taka reprezentacja jest popularna, bo jest zwięzła, łatwa do porównywania i całkowicie pozbawiona niejednoznaczności stref czasowych. Sortowanie zdarzeń, mierzenie czasów trwania czy sprawdzanie, „czy A było przed B?”, sprowadza się do prostych działań na liczbach całkowitych. Znaczniki czasu Unix spotkasz w bazach danych, plikach logów, interfejsach API (np. javascriptowy Date.now(), który zwraca milisekundy), zadaniach cron i webhookach.

Przy interpretacji wyniku pamiętaj o różnicy między czasem UTC a czasem lokalnym. Znacznik zawsze odnosi się do jednego absolutnego momentu, ale odczyt zegara zależy od przesunięcia strefy czasowej osoby patrzącej. Ten kalkulator pokazuje obie wartości: datę i godzinę UTC, która nigdy się nie zmienia, oraz Twoją lokalną datę i godzinę, które przeglądarka wyznacza na podstawie strefy czasowej Twojego urządzenia. Zapis ISO 8601 (2025-01-01T00:00:00.000Z) to postać UTC, zakończona literą Z od „czasu Zulu”.

Linia Czas względny daje szybkie, ludzkie poczucie skali — „ok. 6 miesięcy temu” albo „za 3 dni” — co przydaje się przy czytaniu logów z systemów o nieznanym Ci zegarze albo gdy znacznik pochodzi z nagłówka, np. pola HTTP Date.

Założenia, ograniczenia i wskazówki

  • Sekundy czy milisekundy: wiele systemów (JavaScript, Java) używa milisekund, podczas gdy narzędzia uniksowe i większość interfejsów API używa sekund. Jeśli Twoja liczba ma 13 cyfr, to niemal na pewno milisekundy; 10 cyfr zwykle oznacza sekundy. Częstym błędem jest pomylenie jednych z drugimi, co przesuwa datę o około 31 700 lat.
  • Strefa czasowa lokalna: w kierunku „Data i godzina → znacznik” kalkulator interpretuje dane wejściowe w strefie czasowej ustawionej na Twoim urządzeniu. Jeśli potrzebujesz znacznika dla konkretnego momentu UTC, najpierw przelicz czas lokalny na UTC (np. odejmij swoje przesunięcie).
  • Znaczniki ujemne: daty sprzed 1970 roku są reprezentowane liczbami ujemnymi; kalkulator obsługuje je, ale niektóre starsze systemy już nie.
  • Sekundy przestępne: standardowy czas uniksowy pomija sekundy przestępne — każdy dzień ma dokładnie 86 400 sekund. Jest to zgodne z zachowaniem praktycznie całego oprogramowania, więc w codziennym użyciu nie trzeba nic korygować.
  • Zakres: JavaScript (a więc i ten kalkulator) obsługuje mniej więcej ±273 000 lat wokół roku 1970, co wykracza daleko poza każdą praktyczną datę.
  • Szybki test poprawności: 1 000 000 000 sekund ≈ 2001-09-09; 1 732 000 000 ≈ listopad 2024. Zapamiętanie jednego czy dwóch punktów odniesienia ułatwia wychwycenie przesuniętej cyfry.

Powiązane narzędzia

Praca z surowymi danymi często wiąże się także z innymi kodowaniami. Jeśli Twój znacznik jest osadzony w większej strukturze danych, wypróbuj Formatter JSON, aby uczynić ją czytelną, Konwerter hex lub Konwerter binarny, aby przyjrzeć się reprezentacjom liczbowym, oraz Dekoder Base64, aby rozpakować zakodowane ciągi, które często niosą wartości epoki w adresach URL i tokenach API.

Najczęściej zadawane pytania

Jak ręcznie przeliczyć znacznik czasu Unix na datę?

Podziel znacznik przez 86 400 (liczbę sekund w dobie), aby otrzymać liczbę pełnych dni od 1 stycznia 1970, a następnie użyj reszty z dzielenia, aby ustalić porę dnia. Na przykład 1735689600 ÷ 86 400 = 20 089 dni bez reszty, co daje dokładnie 2025-01-01 00:00:00 UTC. Pełne przeliczenie dni na kalendarzową datę ręcznie jest żmudne ze względu na lata przestępne, więc konwerter jest znacznie bardziej praktyczny.

Skąd wiadomo, czy znacznik jest w sekundach, czy w milisekundach?

Policz cyfry. Liczba 10-cyfrowa (np. 1735689600) to niemal zawsze sekundy i odpowiada mniej więcej latom 2001–2033. Liczba 13-cyfrowa (np. 1735689600000) to milisekundy — ten sam moment pomnożony przez 1000. Pomylenie ich to w ogóle najczęstszy błąd: przesuwa wynik o około 31 700 lat, co łatwo zauważyć, gdy zna się tę regułę.

Jaki jest aktualny znacznik czasu Unix?

Znacznik rośnie o 1 co sekundę, więc nie ma stałej odpowiedzi — zmienia się nieustannie. Jako wygodne punkty odniesienia: 1 700 000 000 to 2023-11-14, 1 750 000 000 to 2025-06-28, a 2 000 000 000 to będzie 2033-05-18. Aby uzyskać bieżącą wartość, przelicz dzisiejszą datę tym kalkulatorem albo wykonaj Date.now() ÷ 1000 w konsoli przeglądarki.

Czy znacznik czasu Unix może być ujemny?

Tak. Ujemne znaczniki liczą wstecz od epoki, więc −86400 to 1969-12-31 00:00:00 UTC, a −2 208 988 800 to 1 styczeń 1900 roku. Ten kalkulator akceptuje wartości ujemne, ale w kodzie zachowaj ostrożność: niektóre starsze systemy i bazy danych przechowują znaczniki jako liczby całkowite bez znaku i w ogóle nie potrafią przedstawić dat sprzed 1970 roku.

Dlaczego mój znacznik pokazuje inny czas niż na serwerze albo w pliku logów?

Znacznik zawsze oznacza jeden absolutny moment, ale odczyt zegara zależy od przesunięcia strefy czasowej osoby patrzącej. Ta sama wartość 1735689600 to 00:00 w UTC, 01:00 w UTC+1 i 19:00 poprzedniego dnia w UTC−5. Porównując wartości między systemami, zawsze przeliczaj najpierw na UTC; dlatego kalkulator pokazuje obok siebie datę i godzinę UTC oraz Twoją lokalną.

Jaka jest różnica między czasem uniksowym, epoch time i czasem POSIX?

Żadna — wszystkie trzy nazwy oznaczają to samo: liczbę sekund od 1 stycznia 1970, 00:00:00 UTC. Czas uniksowy celowo pomija też sekundy przestępne, traktując każdą dobę jako dokładnie 86 400 sekund. Oznacza to, że znacznik nie jest idealnie zsynchronizowany z czasem atomowym, ale odpowiada temu, jak systemy operacyjne, bazy danych i języki programowania zachowują się naprawdę, więc w praktyce nie trzeba nic korygować.

Czym jest problem roku 2038?

Starsze systemy 32-bitowe przechowują znaczniki jako 32-bitową liczbę całkowitą ze znakiem, która przekracza zakres dnia 2038-01-19 o 03:14:08 UTC. Po tym momencie takie systemy mogą interpretować daty sięgające aż 1901 roku. Nowoczesne platformy 64-bitowe (w tym JavaScript, którego używa ten kalkulator) mają zakres około ±273 000 lat i problem ich nie dotyczy, ale kwestia pozostaje istotna dla przestarzałych urządzeń wbudowanych i starszych schematów baz danych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *