Konwerter Unix timestamp

Konwertuj Unix timestamp na datę albo wybraną datę i godzinę na timestamp, korzystając z lokalizowanego polskiego kalendarza.

Przelicz Unix timestamp

UTC i strefa
Dane wejścioweSekundy lub milisekundy od epoki Unix
Po przeliczeniuCzytelna data ze strefą

Epoka Unix zaczyna się 1 stycznia 1970 o 00:00:00 UTC

Wybierz dzień z kalendarza lub wpisz dd.mm.rrrr.
Szybkie ustawienia

Od danych do świadomej decyzji

  1. Wymagania
  2. Narzut i rezerwa
  3. Wynik
  4. Weryfikacja sprzętu

Co właściwie zapisuje Unix timestamp?

Liczba wskazuje chwilę, a nie lokalny zapis w kalendarzu

Unix timestamp mierzy czas od początku epoki: 1 stycznia 1970 roku o 00:00:00 UTC. Wartość 0 wskazuje właśnie ten moment, dodatnie liczby opisują chwile późniejsze, a systemy obsługujące liczby ujemne mogą nimi oznaczać daty wcześniejsze. Sam zapis liczbowy nie zawiera polskiej nazwy miesiąca, formatu dnia ani informacji o mieście użytkownika.

Ta sama chwila może zostać pokazana jako 12:00 w Warszawie, 10:00 w UTC i 05:00 przy UTC−5. Nie są to trzy zdarzenia. Różnią się tylko sposobem wyświetlenia jednego punktu na osi czasu. Dzięki temu timestamp dobrze nadaje się do sortowania zdarzeń pochodzących z wielu serwerów i urządzeń.

W drugą stronę nie wystarczy wpisać „11 lipca o 12:00”. Aby wskazać jednoznaczną chwilę, potrzebny jest jeszcze offset albo reguły konkretnej strefy. Bez tego zapis kalendarzowy jest lokalną informacją, którą dwa systemy mogą zinterpretować inaczej.

UTC porządkuje dane, lecz użytkownik zwykle chce zobaczyć czas lokalny

W logu lub bazie warto przechowywać moment w UTC, ponieważ nie przeskakuje on przy zmianie czasu letniego. Interfejs może następnie przeliczyć tę chwilę na strefę odbiorcy. To rozdziela zapis techniczny od prezentacji, na przykład „2026-07-11 10:00 UTC” od „11.07.2026, 12:00 czasu lokalnego”.

Offset UTC+2 mówi jedynie, że zegar jest przesunięty o dwie godziny do przodu względem UTC w rozpatrywanym momencie. Nie mówi, dlaczego obowiązuje takie przesunięcie ani kiedy ma się zmienić. To ważna różnica między prostym offsetem a nazwą strefy taką jak Europe/Warsaw.

Konwerter stosuje wybrany stały offset. Jest to wygodne przy odczytywaniu rekordu, którego offset już znamy, oraz w prostych testach integracji. Nie jest to kalendarz historycznych i przyszłych zmian prawa dotyczących czasu urzędowego.

Sekundy czy milisekundy — skąd biorą się daty z odległej przyszłości?

Różnica jednostki zmienia wartość tysiąckrotnie

Część interfejsów zwraca liczbę sekund od epoki, a JavaScript i wiele narzędzi frontendowych posługuje się milisekundami. Dla tej samej chwili wartości mogą wyglądać jak 1783764000 oraz 1783764000000. Dopisanie lub usunięcie trzech zer nie jest zmianą daty, lecz jednostki.

Gdy liczba sekundowa zostanie potraktowana jak milisekundy, wynik często ląduje w styczniu 1970 roku. Gdy milisekundy trafią do pola oczekującego sekund, data może wyjść daleko poza sensowny zakres. Taki wynik zwykle nie oznacza uszkodzonego zegara serwera — najpierw trzeba sprawdzić kontrakt danych.

Wybór jednostki w formularzu dotyczy zarówno odczytu timestampu, jak i formatu liczby zwracanej przy konwersji daty. Wyniki pomocnicze pokazują obie reprezentacje, dzięki czemu można porównać je z payloadem API bez liczenia zer ręcznie.

timestamp w milisekundach = timestamp w sekundach × 1000.

Liczba cyfr jest wskazówką, ale nie stanowi bezpiecznej walidacji

Dla współczesnych dat zapis sekundowy zwykle ma dziesięć cyfr, a milisekundowy trzynaście. Ta reguła pomaga szybko zauważyć pomyłkę podczas debugowania, lecz zależy od epoki i zakresu dat. Nie powinna zastępować jawnego pola jednostki w dokumentacji API lub schemacie bazy.

Wartość może przyjść również jako tekst, liczba zmiennoprzecinkowa albo mikrosekundy. Zaokrąglenie ułamka sekund usuwa precyzję, a bardzo duże liczby mogą przekroczyć dokładność bezpiecznego typu liczbowego. Jeżeli kolejność zdarzeń na poziomie mikrosekund ma znaczenie, format danych trzeba ustalić osobno.

Najczytelniejsze nazwy pól ujawniają jednostkę: created_at_seconds, expires_at_ms albo osobny opis w specyfikacji. Pole nazwane tylko time lub timestamp wymusza zgadywanie i przenosi ryzyko na każdy system, który później odczyta rekord.

Jak przeliczyć datę lokalną na chwilę UTC?

Przykład obliczenia

Przy przejściu do UTC odejmuje się dodatni offset

Jeżeli lokalny zegar pokazuje 12:00 przy UTC+2, czas UTC wynosi 10:00. Dodatni offset jest informacją, o ile lokalny zapis wyprzedza UTC, więc podczas normalizacji zostaje odjęty. Przy UTC−5 lokalna godzina 12:00 odpowiada natomiast 17:00 UTC.

Najłatwiej o pomyłkę znaku, gdy ktoś próbuje „dodać strefę” do godziny lokalnej. Warto przeprowadzić prostą kontrolę zdroworozsądkową: południe w strefie położonej na wschód od Greenwich musi przypadać na wcześniejszą godzinę UTC, a nie późniejszą.

Data może się zmienić razem z godziną. 01:00 przy UTC+2 odpowiada 23:00 poprzedniego dnia w UTC. Podobnie 22:30 przy UTC−5 przechodzi na 03:30 dnia następnego. Testy ograniczone do środka dnia nie wykrywają błędów na granicy doby.

czas UTC = czas lokalny − offset; timestamp = liczba sekund lub milisekund od 1970-01-01 00:00:00 UTC.

Kalendarz przyjmuje polski zapis dnia niezależnie od ustawień przeglądarki

Datę można wybrać z kalendarza albo wpisać w formacie dd.mm.rrrr. Osobne pola godziny, minut i sekund zapobiegają niejasnościom takim jak am/pm. Wybrany offset również jest jawny, więc obliczenie nie korzysta po cichu ze strefy systemu operacyjnego.

To szczególnie przydatne przy analizie zgłoszenia od osoby w innej strefie. Można odtworzyć podany przez nią czas i offset, a potem porównać uzyskany timestamp z logiem serwera. Zmiana własnej strefy w systemie nie powinna być częścią takiego testu.

Formularz waliduje dzień i zakresy godziny. Nadal warto sprawdzić, czy źródłowy zapis nie był już w UTC. Ponowne odjęcie offsetu przesuwa prawidłowy moment po raz drugi i daje wynik formalnie poprawny, lecz merytorycznie błędny.

Przykład: 11 lipca 2026 roku o 12:00 przy UTC+2

Po normalizacji otrzymujemy 10:00 UTC i timestamp 1783764000

Wybieramy 11.07.2026, ustawiamy 12:00:00 oraz offset UTC+2. Od dwunastej odejmujemy dwie godziny, dlatego jednoznaczny moment to 11.07.2026 10:00:00 UTC. Dzień nie zmienia się, ponieważ wynik nadal mieści się po północy.

Od epoki Unix do tej chwili mija 1 783 764 000 sekund. W milisekundach zapis brzmi 1 783 764 000 000. Spacje są jedynie separatorem ułatwiającym czytanie; do API liczba zwykle trafia bez grupowania.

Po wklejeniu 1783764000 w kierunku „Timestamp → data”, wybraniu sekund i UTC+2 otrzymamy z powrotem 11 lipca, 12:00. Wybranie UTC pokaże 10:00. Taki test w obie strony pozwala szybko potwierdzić jednostkę i znak offsetu.

Tabela pokazuje kilka zapisów tej samej chwili

Wiersze nie są kolejnymi etapami zdarzenia. Każdy opisuje ten sam moment inną reprezentacją. To rozróżnienie ma znaczenie, gdy log backendu jest w UTC, a zrzut ekranu użytkownika pokazuje lokalną godzinę.

Dzień tygodnia jest obliczany po zastosowaniu wybranego offsetu. Blisko północy może różnić się od dnia w UTC, choć timestamp pozostaje niezmienny. Dlatego raport powinien zawsze podawać strefę obok daty tekstowej.

Jeśli system przechowuje sam napis „2026-07-11 12:00:00” bez offsetu, nie da się z niego odzyskać pewnego timestampu. Potrzebna jest wiedza o regule, według której zapis powstał.

Jedna chwila w czterech reprezentacjach
ReprezentacjaWartość
Data przy UTC+211.07.2026 12:00:00
Data w UTC11.07.2026 10:00:00
Unix timestamp — sekundy1783764000
Unix timestamp — milisekundy1783764000000

Timestamp w bazie danych, logu i interfejsie użytkownika

Te same cyfry mogą oznaczać sekundy albo milisekundy

Wartość Unix timestamp nie zawiera separatorów ani nazwy strefy, dlatego pierwszą kontrolą powinna być jej skala. Dziesięciocyfrowe liczby spotykane współcześnie zazwyczaj oznaczają sekundy. Trzynastocyfrowe wartości często są milisekundami używanymi przez JavaScript. Pomylenie tych formatów nie daje niewielkiego przesunięcia: może przenieść datę o tysiące lat albo spowodować przepełnienie w systemie, który oczekuje mniejszego zakresu.

Nie warto rozpoznawać jednostki wyłącznie na podstawie długości ciągu, gdy dane mogą dotyczyć odległej przeszłości, przyszłości albo zawierać ułamki sekundy. Najlepszym źródłem jest kontrakt API, definicja kolumny lub dokumentacja zdarzenia. W interfejsie konwertera wybór sekund i milisekund jest jawny, dzięki czemu można sprawdzić obie interpretacje bez niekontrolowanego zaokrąglenia.

Jak odczytywać popularne warianty czasu Unix
ZapisNajczęstsza jednostkaRozdzielczośćCo sprawdzić
0sekundy1 spoczątek epoki UTC
1000000000sekundy1 skontrakt systemu
1783728000sekundy1 sstrefę przy prezentacji
1783728000000milisekundy1 msczy źródłem jest JavaScript

UTC przechowuje chwilę, a strefa tworzy lokalny zapis

Timestamp opisuje moment na osi czasu, więc nie zmienia się po wyświetleniu w Warszawie, Londynie czy Nowym Jorku. Zmieniają się natomiast data kalendarzowa i godzina pokazane użytkownikowi. Jeżeli 23:30 UTC zostanie przedstawione w strefie UTC+2, lokalnie będzie już 01:30 następnego dnia. Właśnie dlatego logi techniczne najlepiej przechowywać w UTC, a strefę stosować dopiero przy prezentacji lub raporcie.

Stały offset, taki jak UTC+1, nie jest pełną strefą czasową. Europe/Warsaw zawiera reguły historyczne i zmiany czasu letniego, podczas gdy liczba +1 opisuje tylko jedno przesunięcie. Formularz z offsetem służy do kontrolowanej konwersji konkretnej chwili; przy harmonogramach cyklicznych i datach historycznych potrzebna jest biblioteka stref czasowych oraz identyfikator regionu.

  • Do logów zapisuj timestamp oraz, jeśli to potrzebne, oryginalną strefę zdarzenia.
  • W API jednoznacznie nazwij pole i jednostkę, na przykład createdAtMs.
  • W eksporcie dla człowieka dodaj offset lub skrót strefy obok godziny.
  • Nie obliczaj zmian czasu letniego przez ręczne dodawanie jednej godziny.

Granice typu danych i problem roku 2038

Starsze systemy zapisujące sekundy w 32-bitowej liczbie całkowitej ze znakiem osiągną granicę 19 stycznia 2038 roku. Nowoczesna aplikacja może obliczyć późniejszy timestamp poprawnie, lecz integracja z urządzeniem, biblioteką lub bazą o takim ograniczeniu nadal może się nie udać. Przed przesłaniem dat rezerwacji, certyfikatów czy długich harmonogramów warto sprawdzić typ kolumny oraz zakres po stronie odbiorcy.

Drugi problem dotyczy precyzji liczb zmiennoprzecinkowych i bardzo dużych wartości w milisekundach lub mikrosekundach. Jeżeli system wymaga dokładnego identyfikowania kolejności zdarzeń, sama liczba JavaScript może nie wystarczyć; bezpieczniejszy bywa typ całkowity o odpowiedniej szerokości albo tekst zgodny ze specyfikacją. Konwerter pomaga zweryfikować znaczenie liczby, lecz nie zastępuje kontroli schematu danych i reguł serializacji.

Najczęstsze pytania

Czy Unix timestamp zawiera strefę czasową?

Nie. Wskazuje chwilę na osi czasu. Strefa lub offset są potrzebne dopiero do wyświetlenia lokalnej daty i godziny.

Dlaczego po konwersji widzę rok 1970?

Najczęściej wartość sekundowa została odczytana jako milisekundy. Sprawdź jednostkę w źródle danych i przełącz odpowiednie pole.

Czy mogę wybrać dzień z kalendarza?

Tak. Polski kalendarz pozwala wybrać datę, a pola obok służą do ustawienia godziny, minut, sekund i offsetu.

Czy UTC+2 oznacza zawsze czas w Polsce?

Nie. To tylko stałe przesunięcie. Polska korzysta z reguł strefy Europe/Warsaw, które zależnie od daty mogą dawać inny offset.

Czy długość liczby pewnie rozpoznaje sekundy i milisekundy?

Nie. Dziesięć i trzynaście cyfr to przydatna wskazówka dla współczesnych dat, ale poprawna jednostka musi wynikać z kontraktu danych.

Czy konwerter uwzględnia zmianę czasu i sekundy przestępne?

Używa stałego offsetu, a nie pełnej bazy stref IANA, i działa według powszechnego modelu Unix/POSIX. Nie modeluje osobno sekund przestępnych.

Źródła i dalsza lektura

  1. The Open Group. (2018). The Open Group Base Specifications – Seconds Since the Epoch.
  2. IETF. (2002). RFC 3339: Date and Time on the Internet.

Podobne wpisy