Konwerter Epoch/Unix Online
Konwertuj znaczniki czasu Unix na czytelne daty i z powrotem. Niezbędne przy debugowaniu API i logów.
Do czego służy
Znaczniki czasu Unix natychmiast
Sekundy i milisekundy
Automatyczne wykrywanie, czy znacznik czasu jest w sekundach (10 cyfr) czy milisekundach (13 cyfr).
100% prywatny
Konwersja odbywa się w Twojej przeglądarce przy użyciu natywnego API Date języka JavaScript. Bez serwerów.
Wiele formatów
Wyświetla wynik w formacie ISO 8601, UTC, daty lokalnej i relatywnym (X dni temu).
Natychmiastowy
Konwersja jest błyskawiczna. Pokazuje też aktualny znacznik czasu aktualizowany w czasie rzeczywistym.
Jak to działa
Trzy kroki, żadnych komplikacji
Wprowadź znacznik czasu lub datę
Wklej znacznik czasu Unix (w sekundach lub milisekundach) lub wprowadź datę w formacie ISO 8601, aby dokonać konwersji w odwrotnym kierunku.
Wybierz strefę czasową
Wybierz swoją strefę czasową lub UTC, aby zobaczyć poprawną datę lokalną. Znaczniki czasu Unix są zawsze wewnętrznie w UTC.
Skopiuj wynik
Otrzymaj sformatowaną datę w wielu formatach (ISO 8601, UTC, lokalnym) lub numeryczny znacznik czasu. Kopiowanie jednym kliknięciem.
FAQ
Masz pytania?
Epoka Unix (zwana też czasem Unix lub czasem POSIX) to liczba sekund, które upłynęły od 1 stycznia 1970 roku o godzinie 00:00:00 UTC, z wyłączeniem sekund przestępnych. Ta data referencyjna została wybrana, ponieważ Unix był tworzony pod koniec lat 60. i potrzebny był wygodny punkt startowy. Czas Unix jest ciągły, jednorodny i niezależny od strefy czasowej, co czyni go idealnym do przechowywania i porównywania chwil czasu w systemach rozproszonych.
Klasyczne systemy Unix (C, Python datetime, bazy danych SQL) używają sekund. Środowiska JavaScript/Node.js, Java (System.currentTimeMillis()) i wiele nowoczesnych API stosuje milisekundy. Znacznik czasu w sekundach ma 10 cyfr (np. 1704067200 dla 1 stycznia 2024), a w milisekundach — 13 cyfr (1704067200000). Niektóre systemy używają mikrosekund (16 cyfr) lub nanosekund (19 cyfr) dla pomiarów o wysokiej precyzji.
Problem Y2K38 (zwany też problemem roku 2038 lub Unix Millennium Bug) wystąpi 19 stycznia 2038 roku o godzinie 03:14:07 UTC. W tym momencie znacznik czasu Unix przechowywany jako 32-bitowa liczba całkowita ze znakiem (int32) osiągnie swoją maksymalną wartość (2 147 483 647) i ulegnie przepełnieniu, wracając do liczby ujemnej, którą systemy zinterpretują jako 13 grudnia 1901 roku. Systemy używające int64 (64-bitowych liczb całkowitych) nie będą miały tego problemu aż do roku 292 277 026 596.
Znaczniki czasu Unix mają wyraźne przewagi techniczne nad sformatowanymi datami: są prostą liczbą (łatwą do porównywania, sortowania i serializacji), nie mają niejednoznaczności strefy czasowej (zawsze reprezentują tę samą chwilę UTC), nie mają niejednoznaczności formatu (MM/DD/RRRR vs DD/MM/RRRR), zajmują mniej miejsca (8 bajtów jako int64 wobec ponad 24 bajtów jako ciąg ISO) i są wydajniejsze dla operacji zakresowych na indeksach baz danych.
Znaczniki czasu Unix są zawsze w UTC — reprezentują tę samą chwilę niezależnie od miejsca pobytu. Strefa czasowa ma znaczenie tylko przy konwersji znacznika czasu na czytelną reprezentację (lokalna data i godzina) lub przy tworzeniu znacznika czasu z daty lokalnej. Częstym błędem jest ignorowanie strefy czasowej podczas parsowania dat i zakładanie czasu lokalnego: powoduje to błędy ±N godzin w zależności od przesunięcia strefy czasowej systemu, które są trudne do wykrycia, bo testy zazwyczaj działają w UTC.
Czas Unix: powszechny zegar systemów komputerowych
Czas Unix jest de facto standardem reprezentowania chwil czasu w systemach komputerowych. Jego elegancja tkwi w prostocie: pojedyncza liczba całkowita rosnąca monotonicznie, bez niejednoznaczności formatu, strefy czasowej czy kalendarza. Został zdefiniowany w specyfikacji POSIX i przyjęty przez wszystkie systemy operacyjne wywodzące się z Unixa (Linux, macOS, BSD) oraz większość nowoczesnych języków programowania. Standard POSIX.1-2008 definiuje go formalnie jako liczbę sekund od epoki Unix, z tą osobliwością, że sekundy przestępne nie są liczone.
W ekosystemie baz danych znaczniki czasu Unix są wszechobecne. PostgreSQL dysponuje typem TIMESTAMP, który wewnętrznie przechowuje mikrosekundy od epoki Unix. MySQL udostępnia funkcje UNIX_TIMESTAMP() i FROM_UNIXTIME(). MongoDB przechowuje daty jako milisekundy od epoki w typie Date. Redis używa znaczników czasu Unix do wygasania kluczy (EXPIREAT). Logi systemów takich jak Apache, Nginx i syslog często zawierają znaczniki czasu Unix, aby ułatwić przetwarzanie narzędziami jak awk, grep i skrypty powłoki.
Problem Y2K38 jest nowoczesnym odpowiednikiem oryginalnego Y2K: systemy przechowujące znaczniki czasu jako int32 ze znakiem ulegną przepełnieniu 19 stycznia 2038 roku. Choć większość nowoczesnych systemów używa już int64, problem nadal występuje w systemach wbudowanych, starszym oprogramowaniu sprzętowym i kodzie legacy. Migracja do int64 jest standardowym rozwiązaniem. Convertir.ai pokazuje, ile czasu pozostało do Y2K38, i pozwala sprawdzić, czy dany znacznik czasu wypada przed tą krytyczną datą czy po niej.