Czas/Liczby

Unix Timestamp ↔ Data

Konwersja czasu Unix na datę i odwrotnie, z obsługą dowolnej strefy czasowej (IANA).


                    

Unix time (epoch time) is the number of seconds elapsed since January 1, 1970, 00:00:00 UTC. It's the most common way to store time in databases, APIs, and logs, since it's just a single integer with no tie to a specific timezone or date format.

How to use it

Common uses

Things to keep in mind

Mixing up seconds and milliseconds is the most common mistake: JavaScript's Date.now() returns milliseconds, while most Unix APIs use seconds — a factor of 1000 off.

Unix time itself has no timezone — it's always UTC; a timezone is only applied when displaying the date to a person.

Artykuł o tym narzędziu: Czas Unix: dlaczego komputery liczą czas od 1970 roku

Najczęstsze pytania

Czym jest znacznik czasu Unix?

To liczba sekund, które upłynęły od 1 stycznia 1970 roku, 00:00:00 UTC (epoka Unix). Ta liczba nie jest powiązana z żadną strefą czasową — strefa czasowa jest stosowana tylko przy wyświetlaniu daty osobie.

Jaka jest różnica między sekundami a milisekundami?

JavaScript i niektóre API (jak Date.now()) zwracają znacznik czasu w milisekundach, podczas gdy klasyczny czas Unix jest w sekundach. Pomylenie jednostki daje datę albo w 1970 roku, albo gdzieś w odległej przyszłości — wybierz właściwą jednostkę w polu "Jednostki".

Czy czas Unix uwzględnia sekundy przestępne?

Nie, każda doba w czasie Unix zawsze równa się dokładnie 86400 sekund, sekundy przestępne są ignorowane. Systemy wymagające dokładnej synchronizacji z astronomicznym UTC obsługują sekundy przestępne osobnym mechanizmem, poza standardowym znacznikiem czasu Unix.

Czy znacznik czasu Unix może być ujemny?

Tak, wartości ujemne odpowiadają datom sprzed 1 stycznia 1970 roku. Większość nowoczesnych systemów prawidłowo obsługuje takie wartości, choć niektóre starsze API lub biblioteki mogą ich nie obsługiwać.

Czym jest problem roku 2038?

W systemach, gdzie znacznik czasu jest przechowywany jako 32-bitowa liczba całkowita ze znakiem, licznik sekund przepełni się 19 stycznia 2038 roku. Nowoczesne systemy 64-bitowe nie mają tego problemu.

Artykuły: Czas/Liczby

Wyrażenia cron: jak odczytać harmonogram zadań

Jak odczytać wyrażenie takie jak */15 * * * * i dokładnie wiedzieć, kiedy zadanie się uruchomi.

Systemy liczbowe: po co istnieją system dwójkowy, ósemkowy i szesnastkowy

Dlaczego kolor #FF5733 w CSS zapisany jest cyframi szesnastkowymi, a nie dziesiętnymi.

Operacje bitowe: jak działają AND, OR i XOR na poziomie bitów

Czym bitowy AND różni się od logicznego, i po co w ogóle operować na pojedynczych bitach liczby.

Różnica między datami: dlaczego liczenie dni jest trudniejsze, niż się wydaje

Dlaczego naiwne odejmowanie dat może dać błędny wynik przez lata przestępne.

Obliczanie wieku: dlaczego to nie proste odejmowanie lat

Dlaczego proste odjęcie roku urodzenia może dać wiek o rok większy niż rzeczywisty.

Strefy czasowe: dlaczego UTC to nie to samo co GMT

Dlaczego UTC nigdy nie zmienia się dwa razy w roku, podczas gdy czas w Londynie (GMT/BST) tak.

Kalkulator czasu trwania: jak poprawnie dodawać godziny, minuty i sekundy

Dlaczego przy dodawaniu minut i sekund trzeba "przenosić" resztę do następnej pozycji, tak jak przy dodawaniu dziesiętnym.

ISO 8601 Duration: jak zapisać czas trwania w standardowym formacie

Dlaczego zapis PT1H30M oznacza „1 godzina 30 minut", a nie „1 minuta 30 godzin".

Numer tygodnia: dlaczego różne kraje liczą tygodnie inaczej

Dlaczego 1 stycznia czasem należy do 52. lub 53. tygodnia poprzedniego roku według standardu ISO 8601.

Liczby rzymskie: jak działa system bez zera i pozycji

Dlaczego IV oznacza 4, a nie 6, i jak działa zasada odejmowania w liczbach rzymskich.

IEEE 754: dlaczego 0.1 + 0.2 nie równa się 0.3 w kodzie

Dlaczego niemal w każdym języku programowania 0.1 + 0.2 wyświetla 0.30000000000000004.

Liczba słownie: po co zamieniać cyfry na słowa

Dlaczego w dokumentach bankowych kwotę zapisuje się jednocześnie cyframi i słownie.