Najszybciej przeliczysz Unix timestamp na datę, wpisując liczbę sekund w prosty konwerter online albo używając jednej komendy w terminalu systemowym. W aplikacjach możesz to zrobić w ułamku sekundy dzięki wbudowanym funkcjom, takim jak time() w PHP czy Date w JavaScript. Jeśli często pracujesz z logami, API lub bazami danych, sprawny „przelicznik czasu uniksowego” oszczędzi ci mnóstwo nerwów. Sprawdź, jakie metody dają najszybszy efekt i wybierz te, które najbardziej pasują do twojej pracy.
Czym jest Unix timestamp i skąd się bierze?
Unix timestamp (czas uniksowy, Unix time, POSIX time) to liczba sekund, które upłynęły od 1 stycznia 1970, 00:00:00 UTC. Ten moment startowy nazywa się epoka Unix i jest wspólnym punktem odniesienia dla systemów operacyjnych, baz danych oraz większości backendów. Zamiast przechowywać rok, miesiąc i dzień, system zapisuje po prostu jedną liczbę całkowitą.
Dla przykładu, liczba 1700000000 oznacza dokładnie 14 listopada 2023, 22:13:20 UTC. Konwersja polega na „rozbiciu” tej liczby na dni, godziny, minuty i sekundy, które upłynęły od epoki. W tle biorą w tym udział kalendarz gregoriański, lata przestępne oraz ewentualna różnica między UTC a lokalną strefą czasową.
Unix timestamp nie przechowuje strefy czasowej – to zawsze sekundy od epoki liczone w UTC, a dopiero aplikacja zamienia je na lokalną godzinę.
W klasycznym Uniksie czas zapisywano jako 32‑bitową liczbę ze znakiem. Dawało to zakres od 0 do 2 147 483 647 sekund, czyli daty do 19 stycznia 2038, 03:14:07 UTC. To słynny „problem roku 2038”, analogiczny do problemu roku 2000 w starych systemach. Nowoczesne systemy (64‑bitowe) używają już o wiele szerszego zakresu, więc ograniczenie praktycznie znika.
Historia czasu uniksowego ma też swoje ciekawostki. Po upływie 10⁹ sekund od epoki – dokładnie 9 września 2001, 01:46:40 GMT – społeczność nadała temu momentowi nazwę „Unix billennium”. Wiele stron pozwala śledzić ten licznik na żywo i pokazuje jednocześnie aktualny czas w UTC oraz np. w strefie Europe/Warsaw.
Sekundy, milisekundy i JavaScript
W typowym Unix timestamp liczysz sekundy. JavaScript idzie inną drogą – obiekt Date trzyma liczbę milisekund od epoki. To oznacza, że timestamp z JavaScript jest 1000 razy większy niż standardowy czas uniksowy, choć opisuje ten sam moment.
Jeśli więc masz wartość z backendu, np. 1700000000, i wkładasz ją do new Date(), musisz pomnożyć ją przez 1000. Z kolei gdy chcesz z obiektu Date wyciągnąć Unix timestamp, używasz getTime(), a następnie dzielisz wynik przez 1000 i zaokrąglasz do całkowitej liczby sekund.
Jak szybko przeliczyć Unix timestamp na datę?
Gdy masz w logach taką liczbę jak 1780398001 i chcesz natychmiast zobaczyć „normalną” datę, możesz sięgnąć po kilka prostych narzędzi. Jedne działają w przeglądarce, inne w konsoli, a część masz wręcz wbudowaną w system.
Konwerter online i narzędzia webowe
Najszybsza ścieżka bez instalowania czegokolwiek to prosty konwerter Unix timestamp na datę w przeglądarce. Wpisujesz liczbę sekund od epoki, klikasz przycisk i od razu widzisz datę w UTC oraz w wybranej strefie, np. CET/CEST. Sporo takich mini‑narzędzi powstaje na blogach o JavaScript, często obok kursów, poradników i linków do konferencji czy polskich profilów programistycznych.
Do bardziej zaawansowanych zastosowań przydają się wyspecjalizowane kalkulatory, np. rozwiązania pokroju CalcBE. Możesz tam nie tylko przeliczyć timestamp na datę, ale też sprawdzić, jak zmieni się godzina po przejściu między strefami IANA, jak zmienia się UTC offset w czasie zmiany DST, a nawet sumować czasy pracy w formacie HH:MM:SS.
Rozszerzenie przeglądarki Unix Timestamp Converter
Jeżeli non stop otwierasz logi w przeglądarce, przydaje się lekkie rozszerzenie takie jak Unix Timestamp Converter w Chrome. To małe narzędzie działa w wyskakującym okienku – wpisujesz timestamp i od razu widzisz czytelną datę, albo wybierasz datę z pola formularza i dostajesz liczbę sekund od epoki.
Rozszerzenie jest zamknięte w prostym popupie, nie modyfikuje stron, nie śledzi ruchu i nie wstrzykuje skryptów. Ma jedną funkcję: szybkie przeliczanie Unix time → data i data → Unix time, z wygodną opcją załadowania aktualnego czasu. Dla testerów, analityków czy studentów, którzy kilka razy dziennie patrzą w timestampy, taki skrót pod ręką realnie przyspiesza pracę.
Przeliczanie z poziomu systemu i konsoli
W systemach uniksowych konwersję załatwia jedna komenda. Jeśli masz timestamp i chcesz zobaczyć datę w lokalnej strefie, wpisujesz w terminalu coś takiego:
date -d @1700000000
Ta sama komenda z przełącznikiem -u pokaże czas w UTC, co przydaje się przy porównywaniu logów z serwerów w różnych data center. Na macOS możesz użyć date -r 1700000000, a w PowerShellu na Windowsie – wywołań opartych o [DateTimeOffset].
Jak zamienić datę na Unix timestamp w kodzie?
W aplikacjach backendowych timestampy przewijają się wszędzie: w logach, tokenach JWT, bazach danych i limitach czasowych. Konwersja z „czytelnej” daty na Unix time w większości języków sprowadza się do jednej funkcji albo metody.
Przykłady w JavaScript
JavaScript używa milisekund, ale sam zapis jest bardzo prosty. Jeśli chcesz z bieżącej daty zrobić Unix timestamp, wystarczy:
Math.floor(Date.now() / 1000)
Analogicznie możesz stworzyć obiekt Date z konkretnego ISO stringa, a następnie wyciągnąć z niego timestamp. Przy parsowaniu zawsze pilnuj, czy podajesz czas w UTC (z literą Z na końcu, np. 2023-11-14T22:13:20Z), czy w lokalnej strefie – ta drobna różnica potrafi przesunąć wynik o godzinę lub dwie.
Przykład w PHP i funkcja time()
W PHP zapis liczby sekund od epoki załatwia wbudowana funkcja time(). Zwraca ona int reprezentujący aktualny czas uniksowy, zgodnie z definicją: liczbę sekund od Unix Epoch. Do formatowania użyjesz z kolei funkcji date(), np.:
date(’c’, 1700000000)
Taki kod zwróci datę w formacie ISO 8601 (np. 2023-11-14T22:13:20+00:00). Po stronie baz danych najczęściej przechowujesz timestamp w typie całkowitym i dopiero na etapie prezentacji zamieniasz go na sformatowaną datę w żądanej strefie czasowej.
Automatyzacje w Shortcuts na iOS
Na iPhone’ach i iPadach możesz przeliczać czas uniksowy nawet w automatyzacjach. Rozszerzenia do aplikacji Shortcuts (Skróty) udostępniają akcje Convert Date to Unix Time oraz Convert Unix Time to Date, obok dziesiątek innych akcji pracujących na dacie i czasie. To wygodny sposób, by np. w notatkach albo w nazwach plików przechowywać Unix timestamp, a w workflow zamieniać go na czytelną datę.
Ze względu na błąd w iOS, twórcy takich paczek akcji często przypominają, że trzeba najpierw uruchomić aplikację Skróty, a potem zrestartować urządzenie, żeby nowe akcje pojawiły się na liście. Akcje tego typu nie działają na Apple Watch ani HomePod – tam Shortcuts ma mocno ograniczone możliwości.
Jak radzić sobie ze strefami czasowymi i czasem letnim?
Najwięcej pomyłek przy przeliczaniu Unix timestamp na datę wynika nie z samej liczby sekund, ale z nieporozumień wokół stref czasowych. Ten sam timestamp odpowiada przecież innej godzinie w UTC, a innej w strefie Europe/Warsaw. Jak to ogarnąć w praktyce?
Najbezpieczniej traktować czas uniksowy jako zawsze odniesiony do UTC, a dopiero na etapie prezentacji robić konwersję do lokalnej strefy. Do przeliczania między strefami świetnie nadają się narzędzia oparte o bazę IANA time zone, takie jak wspomniany konwerter stref czasowych w CalcBE czy biblioteki pokroju moment-timezone w JavaScript.
Dla lepszego wyobrażenia, jak zmieniają się godziny w różnych strefach, spójrz na przykładową tabelę:
| Unix timestamp | UTC | Europe/Warsaw |
| 1700000000 | 2023-11-14 22:13:20 | 2023-11-14 23:13:20 |
| 1780398001 | 2026-06-02 11:00:01 | 2026-06-02 13:00:01 |
| 2 147 483 647 | 2038-01-19 03:14:07 | 2038-01-19 04:14:07 |
Różnica między UTC a Warszawą wynosi zwykle +1 godzinę, a w czasie letnim +2 godziny. To właśnie zmiana czasu letniego (DST) bywa pułapką, gdy porównujesz timestampy z przełomu marca i października. Narzędzia z obsługą IANA biorą te przełączenia pod uwagę – ręczne liczenie offsetu na piechotę często kończy się błędem.
Czas uniksowy nie uwzględnia sekund przestępnych, więc rzeczywista liczba sekund od 1970 roku jest nieco większa niż wartość timestampu.
O czym pamiętać przy pracy z czasem uniksowym?
Czy jeden prosty błąd w pracy z czasem potrafi złamać całą analizę logów? Niestety tak, dlatego przy Unix timestampach warto trzymać się kilku zasad, które szybko wchodzą w nawyk.
Najczęstsze problemy biorą się z mylenia jednostek, ignorowania stref czasowych i braku świadomości ograniczeń 32‑bitowego czasu. Pomaga krótka lista kontrolna, którą możesz przelecieć za każdym razem, gdy przeliczasz timestamp na datę albo datę na timestamp:
- sprawdź, czy pracujesz na sekundach (Unix) czy milisekundach (JavaScript),
- upewnij się, w jakiej strefie czasowej zapisano przekazywaną datę wejściową,
- konwertuj do UTC na wejściu, a dopiero na wyjściu wyświetlaj czas lokalny,
- zwróć uwagę, czy system używa 32‑bitowego czy 64‑bitowego typu czasu,
- przy testach wokół przejść na czas letni porównuj wyniki narzędzi z bazą IANA.
W dużych projektach backendowych czas uniksowy często ląduje w kolumnach baz danych, systemach monitoringu, a nawet w nazwach plików. Analitycy danych, którzy pracują z eksportami CSV, używają timestampów do sortowania zdarzeń i liczenia różnic czasu. Narzędzia wspomniane wcześniej – konwertery webowe, rozszerzenia przeglądarki, akcje Shortcuts, kalkulatory w stylu CalcBE – pozwalają skrócić całą operację do kilku kliknięć.
Przy dobrze dobranym zestawie narzędzi masz tę samą datę podaną jako tekst ISO, Unix timestamp, godzinę lokalną i UTC, a także jako prosty czas trwania w formacie HH:MM:SS. Taka spójność znacznie ułatwia debugowanie zrzutów logów i analizę zdarzeń z wielu systemów naraz.
FAQ – najczęściej zadawane pytania
Czym jest Unix timestamp?
Unix timestamp (czas uniksowy, Unix time, POSIX time) to liczba sekund, które upłynęły od 1 stycznia 1970, 00:00:00 UTC. Ten moment startowy nazywa się epoka Unix i jest wspólnym punktem odniesienia dla systemów operacyjnych, baz danych oraz większości backendów, służąc do przechowywania daty jako jednej liczby całkowitej.
Jak najszybciej przeliczyć Unix timestamp na datę?
Najszybciej przeliczysz Unix timestamp na datę, wpisując liczbę sekund w prosty konwerter online albo używając jednej komendy w terminalu systemowym. W aplikacjach możesz to zrobić w ułamku sekundy dzięki wbudowanym funkcjom, takim jak time() w PHP czy Date w JavaScript.
Czy Unix timestamp uwzględnia strefy czasowe?
Nie, Unix timestamp nie przechowuje strefy czasowej – to zawsze sekundy od epoki liczone w UTC, a dopiero aplikacja zamienia je na lokalną godzinę. Najbezpieczniej jest traktować czas uniksowy jako zawsze odniesiony do UTC, a konwersję do lokalnej strefy robić na etapie prezentacji.
Jaka jest różnica między Unix timestamp a obiektem Date w JavaScript?
W typowym Unix timestamp liczy się sekundy, natomiast obiekt Date w JavaScript trzyma liczbę milisekund od epoki. Oznacza to, że timestamp z JavaScript jest 1000 razy większy niż standardowy czas uniksowy, choć opisuje ten sam moment.
Jak mogę przeliczyć Unix timestamp na datę w systemach uniksowych za pomocą terminala?
W systemach uniksowych konwersję załatwia jedna komenda. Aby zobaczyć datę w lokalnej strefie, wpisujesz w terminalu `date -d @[timestamp]`, np. `date -d @1700000000`. Ta sama komenda z przełącznikiem `-u` pokaże czas w UTC.
Czym jest „problem roku 2038”?
Problem roku 2038″ to ograniczenie wynikające z zapisu czasu w klasycznym Uniksie jako 32-bitowej liczby ze znakiem. Dawało to zakres dat do 19 stycznia 2038, 03:14:07 UTC. Nowoczesne systemy (64-bitowe) używają już o wiele szerszego zakresu, więc to ograniczenie praktycznie znika.