Czym jest to narzędzie?
Sygnatura czasowa systemu Unix (zwana również czasem epoki) to liczba sekund, które upłynęły od 1 stycznia 1970 r., godz. 00:00:00 czasu UTC. Jest to standardowy sposób przechowywania punktów w czasie przez komputery: korzystają z niego bazy danych, pliki dziennika, interfejsy API oraz języki programowania, ponieważ jest to pojedyncza, jednoznaczna liczba, która nie powoduje niejasności związanych ze strefami czasowymi.
Istnieją dwa rodzaje: sekundy (obecnie 10 cyfr, np. 1720500000) oraz milisekundy (13 cyfr, używane w JavaScript i Javie). To narzędzie automatycznie rozpoznaje, który z nich wkleiłeś.
Dlaczego warto go używać?
- Natychmiast odczytuj znaczniki czasu z logów, wierszy bazy danych i odpowiedzi API.
- Automatycznie rozróżnia sekundy od milisekund — nie trzeba zgadywać.
- Wyświetla jednocześnie czas lokalny, UTC, format ISO 8601 oraz czas względny („3 godziny temu”).
- Konwertuj w obu kierunkach: znacznik czasu → data oraz data → znacznik czasu.
- Zegar pokazujący bieżącą epokę w czasie rzeczywistym – do szybkiego sprawdzenia.
Jak używać
- Aby zdekodować: wklej znacznik czasu (np. 1720500000) w lewe pole i kliknij „Konwertuj”.
- Wyświetl wynik w lokalnej strefie czasowej, w formacie UTC, ISO 8601 oraz jako czas względny.
- Aby zakodować: wybierz datę i godzinę w odpowiednim polu, a następnie kliknij „Konwertuj”, aby uzyskać sygnaturę czasową wyrażoną w sekundach i milisekundach.
- Jeśli potrzebujesz jedynie aktualnego znacznika czasu, skorzystaj z zegara na żywo znajdującego się u góry strony.
Przykład
Wejście
1720500000Wynik
Local time: 7/9/2024, 1:20:00 PM
UTC time: Tue, 09 Jul 2024 05:20:00 GMT
ISO 8601: 2024-07-09T05:20:00.000ZWartość 10-cyfrowa jest traktowana jako sekundy, a wartość 13-cyfrowa – jako milisekundy.
Praktyczne wskazówki
- Wykrywanie błędów związanych z „niewłaściwym czasem”: 90% z nich to problemy z wyświetlaniem strefy czasowej, a nie błędne znaczniki czasu. Przed wprowadzeniem jakichkolwiek zmian w kodzie porównaj wiersz z czasem UTC z logami serwera (serwery zazwyczaj rejestrują czas w formacie UTC).
- Data, która przypada dokładnie na 1970-01-01, oznacza, że znacznik czasu miał wartość 0 lub był nieobecny — jest to klasyczny objaw wartości null, a nie prawdziwa data.
- Data z około 1970 roku + kilka dni zazwyczaj oznacza, że gdzieś sekundy zostały zinterpretowane jako milisekundy; data z roku 56 000+ oznacza sytuację odwrotną.
- W arkuszach kalkulacyjnych: program Excel liczy dni od 1900 r., a nie sekundy od 1970 r. Aby uzyskać znacznik czasu w sekundach, należy zastosować formułę =(A1/86400)+DATE(1970,1,1).
Rzeczywiste scenariusze zastosowań
Gdzie znaczniki czasu sprawdzają się w praktyce: odczytywanie pól wygaśnięcia w tokenach JWT i tokenach API (exp/iat to sekundy w systemie Unix), korelowanie czasu zgłoszenia błędu przez użytkownika z wpisami w logach serwera, ustalanie czasów życia pamięci podręcznej (TTL) i okien cron oraz sprawdzanie, czy certyfikat lub token faktycznie stracił ważność. Wiersz z czasem względnym („3 godziny temu”) stanowi najszybszą metodę weryfikacji poprawności wszystkich tych przypadków.
Debugowanie tokenów JWT jest na tyle powszechne, że warto to wyjaśnić: zdekoduj zawartość tokenu za pomocą narzędzia Base64, a następnie wklej tutaj wartość „exp” — otrzymasz natychmiastową odpowiedź na pytanie „czy ten token stracił ważność i na jak długo”.
Dlaczego czas Unix został zaprojektowany w ten sposób
Przechowywanie pojedynczej, rosnącej liczby od ustalonego momentu początkowego (zamiast struktury rok/miesiąc/dzień/godzina) było świadomym wyborem na rzecz prostoty: dwa znaczniki czasu można porównać lub odjąć od siebie za pomocą zwykłych operacji arytmetycznych, nie wymaga to żadnej logiki kalendarzowej, dlatego właśnie opierają się na tym rozwiązania baz danych, formaty logów oraz wewnętrzna reprezentacja daty praktycznie w każdym języku programowania. Kosztem tej prostoty jest właśnie to, co niniejsze narzędzie ma na celu złagodzić — ludzie nie myślą w kategoriach sekund od 1970 roku, więc każdy znacznik czasu trzeba przeliczyć z powrotem na datę kalendarzową, zanim będzie miał jakikolwiek sens dla osoby, która go odczytuje, a przeliczenie to musi uwzględniać strefę czasową, precyzję (sekundy kontra milisekundy) oraz format wyświetlania – wszystko naraz.
Najczęściej zadawane pytania
Skąd narzędzie wie, czy mój znacznik czasu jest podany w sekundach, czy w milisekundach?
Według wielkości. Wartości równe 1 000 000 000 000 (1e12) lub większe są traktowane jako milisekundy; mniejsze wartości jako sekundy. Obecne daty wynoszą około 1,7 miliarda sekund i około 1 700 miliardów milisekund, więc te dwa zakresy nie pokrywają się w przypadku realistycznych dat.
Dlaczego mój znacznik czasu wskazuje inną godzinę niż się spodziewałem?
Strefy czasowe. Sygnatura czasowa jest zawsze podawana w formacie UTC; wiersz „czas lokalny” przelicza ją na strefę czasową Twojego urządzenia. Porównaj wiersz UTC z danymi z dzienników systemu źródłowego — wiele serwerów rejestruje dane w formacie UTC.
Czym jest problem roku 2038?
W systemach przechowujących sygnatury czasowe jako 32-bitowe liczby całkowite ze znakiem 19 stycznia 2038 r. nastąpi przepełnienie. Nowoczesne systemy wykorzystują 64-bitowe liczby całkowite i problem ten ich nie dotyczy. Niniejsze narzędzie wykorzystuje liczby w języku JavaScript, które obsługują daty znacznie wykraczające poza rok 2038.
Czy mogę przekonwertować ujemne znaczniki czasu?
Tak. Ujemne znaczniki czasu odpowiadają datom sprzed 1 stycznia 1970 r. — na przykład -86400 to 31 grudnia 1969 r.
Czy epoka obejmuje sekundy przestępne?
Nie. Czas uniksowy zakłada, że każdy dzień ma dokładnie 86 400 sekund i pomija sekundy przestępne — jest to celowe uproszczenie, które ułatwia obliczenia.