Unix Timestamp Converter

Konwertuj między Unix timestampami a czytelnymi datami natychmiast

Wszystkie obliczenia są wykonywane lokalnie w Twojej przeglądarce. Żadne dane nie są przesyłane na nasze serwery ani nigdzie przechowywane.

Co to jest Unix Timestamp?

Unix timestamp (znany też jako Epoch time lub POSIX time) to numeryczna reprezentacja czasu, która zlicza liczbę sekund (lub milisekund) jakie upłynęły od 1 stycznia 1970 o 00:00:00 UTC. Ten moment jest znany jako "Unix Epoch" i służy jako punkt zerowy dla wszystkich obliczeń znaczników czasu Unix. System ten zapewnia ustandaryzowany, niezależny od strefy czasowej sposób reprezentowania dat i godzin w systemach komputerowych na całym świecie.

Unix timestamps są fundamentalne dla nowoczesnych systemów komputerowych i są szeroko stosowane w programowaniu, bazach danych, API oraz systemach, które wymagają spójnego śledzenia czasu między różnymi strefami czasowymi i platformami. Format jest prosty, zwarty i eliminuje złożoność związaną ze strefami czasowymi, czasem letnim oraz niespójnościami formatów dat.

Kluczowe cechy Unix Timestamps

  • Uniwersalny standard: Ta sama wartość timestampu reprezentuje ten sam moment globalnie, niezależnie od strefy czasowej
  • Prosty format: Tylko jedna liczba całkowita reprezentująca czas w sekundach lub milisekundach
  • Łatwe obliczenia: Różnice czasu to proste działania arytmetyczne
  • Kompaktowe przechowywanie: Wymaga tylko 32 lub 64 bitów pamięci
  • Przyjazne dla programistów: Wbudowane wsparcie we wszystkich głównych językach programowania
  • Efektywne dla baz danych: Idealne do sortowania i indeksowania rekordów czasowych
  • Niezależne od strefy czasowej: Eliminuje niejasności związane z DST i regionalnymi różnicami czasowymi

Zrozumienie formatów timestamów

Unix timestamps występują w dwóch głównych formatach, z których każdy nadaje się do innych wymagań precyzji:

1. Sekundy (10 cyfr)

Tradycyjny format znacznika czasu Unix zliczający sekundy od 1970. Przykład: 1698768000

Reprezentuje: 31 października 2023, 12:00:00 UTC

2. Milisekundy (13 cyfr)

Format o wyższej precyzji zliczający milisekundy od 1970. Przykład: 1698768000000

Używany przez JavaScript, Node.js i systemy wymagające precyzji milisekundowej

Porównanie formatów

Event Format w sekundach Format w milisekundach
Unix Epoch (początek) 0 0
Y2K (2000-01-01) 946684800 946684800000
Przykładowy czas 1698768000 1698768000000
Limit problemu Y2038 2147483647 2147483647000

💡 Auto-Detekcja: Nasz konwerter automatycznie wykrywa format na podstawie liczby cyfr: 10 digits = seconds, 13 digits = milliseconds. The relationship is simple: milliseconds = seconds × 1000.

Jak konwertować Unix timestamps

Konwersja między Unix timestamps a czytelnymi datami jest prosta przy użyciu odpowiednich narzędzi. Nasz konwerter obsługuje obie kierunki konwersji i automatycznie różne formaty wyjściowe.

Unix Timestamp → Data czytelna dla człowieka

Wejście: 1698768000

ISO 8601: 2023-10-31T12:00:00.000Z

UTC: Tue, 31 Oct 2023 12:00:00 GMT

Czas lokalny: Zależy od Twojej strefy czasowej

Względny: "X dni temu" lub "za X dni"

Data czytelna dla człowieka → Unix Timestamp

Wejście: 31 października 2023, 12:00:00 PM

Sekundy: 1698768000

Milisekundy: 1698768000000

Szybkie presety

Popularne timestarmy do testów i odniesienia:

  • Teraz: Aktualny timestamp (aktualizowany w czasie rzeczywistym)
  • Unix Epoch: 0 (1 stycznia 1970, 00:00:00 UTC)
  • Y2K: 946684800 (1 stycznia 2000, 00:00:00 UTC)

Typowe zastosowania Unix Timestamps

Unix timestamps są wszechobecne we współczesnym oprogramowaniu i administracji systemami:

  • Rekordy w bazie danych: Przechowywanie czasów tworzenia/modyfikacji rekordów w efektywny sposób
  • Odpowiedzi API: Wymiana danych czasowych między systemami bez komplikacji stref czasowych
  • Pliki dziennika: Oznaczanie zdarzeń w logach serwera, aplikacji i ścieżkach audytu
  • Zarządzanie sesją: Śledzenie wygaśnięcia sesji użytkownika i tokenów uwierzytelniania
  • Zadania zaplanowane: Określanie kiedy mają się wykonywać zadania cron i zadania automatyczne
  • Kontrola wersji: Rejestrowanie timestampów commitów w Git i innych VCS
  • Systemy plików: Śledzenie czasu tworzenia, modyfikacji i dostępu do plików
  • Cache Expiration: Ustalanie TTL (time-to-live) dla danych w pamięci podręcznej
  • Analiza danych: Przetwarzanie danych szeregów czasowych i analityka temporalna
  • JavaScript/Node.js: Date.now() zwraca milisekundowy Unix timestamp

Zrozumienie problemu Y2038

⚠️ Ważna uwaga: Problem Y2038 (zwany też Unix Millennium Bug) dotyczy systemów 32-bitowych, które przechowują Unix timestamps jako liczby całkowite ze znakiem. W dniu 19 stycznia 2038 o 03:14:07 UTC timestampy 32-bitowe przepełnią się i zawiną do wartości ujemnych, co może powodować awarie systemów.

Maksymalna wartość dla 32-bitowej liczby całkowitej ze znakiem to 2147483647, który reprezentuje ostatnią chwilę przed przepełnieniem. Nowoczesne systemy 64-bitowe nie są dotknięte tym ograniczeniem i mogą reprezentować daty daleko w przyszłość (aż do roku 292 miliardów).

Rozwiązanie: Większość nowoczesnych systemów przeszła na 64-bitowe timestampy, ale systemy legacy i urządzenia wbudowane mogą być nadal podatne. Zawsze używaj 64-bitowych timestampów w nowych projektach, aby zapewnić długowieczność.

Najczęściej zadawane pytania

Czym jest Unix Epoch?

Unix Epoch to punkt startowy dla obliczeń znaczników czasu Unix: 1 stycznia 1970 o 00:00:00 UTC. Ta data została wybrana podczas tworzenia systemu Unix i stała się uniwersalnym standardem reprezentacji timestampów w informatyce. Wartość timestamp 0 reprezentuje dokładnie ten moment.

Jak przekonwertować Unix timestamp na datę w JavaScript?

W JavaScript użyj new Date(timestamp * 1000) dla sekund lub new Date(timestamp) dla milisekund. Przykład: new Date(1698768000 * 1000) tworzy obiekt Date. Date.now() w JavaScript zwraca bieżący timestamp w milisekundach.

Jaka jest różnica między formatem sekund a milisekund?

Seconds format (10 digits) is the traditional Unix timestamp used by most Unix/Linux systems and languages like Python and PHP. Milliseconds format (13 digits) provides higher precision and is used by JavaScript, Node.js, and Java. To convert: milliseconds = seconds × 1000.

Czy znaczniki czasu Unix mogą reprezentować daty sprzed 1970?

Tak! Ujemne znaczniki czasu Unix reprezentują daty przed Unix Epoch (1 stycznia 1970). Na przykład -86400 reprezentuje 31 grudnia 1969, 00:00:00 UTC. Jednak niektóre systemy i języki mają ograniczenia dotyczące ujemnych timestampów, więc zawsze testuj swoją konkretną implementację.

Czym jest problem Y2038 i czy powinienem się martwić?

Problem Y2038 dotyczy systemów 32-bitowych, gdzie timestampy przepełnią się 19 stycznia 2038 o 03:14:07 UTC. Nowoczesne systemy 64-bitowe nie są dotknięte i mogą reprezentować daty aż do roku 292 miliardów. Jeśli tworzysz nowe oprogramowanie, zawsze używaj 64-bitowych timestampów. Systemy legacy mogą wymagać aktualizacji przed 2038 rokiem.

Jak dokładne są Unix timestamps?

Unix timestamps w formacie sekundowym są dokładne do 1 sekundy. Format milisekundowy zapewnia precyzję do 0,001 sekundy. Dla jeszcze większej precyzji niektóre systemy używają mikrosekund (16 cyfr) lub nanosekund (19 cyfr), choć są one mniej powszechne. Dokładność zależy od synchronizacji zegara systemowego.

Czy znacznik czasu Unix uwzględnia sekundy przestępne?

Nie, Unix timestamps nie uwzględniają sekund przestępnych. Zakładają, że każdy dzień ma dokładnie 86 400 sekund, co upraszcza obliczenia, ale oznacza, że Unix time nie jest idealnie zsynchronizowany z czasem atomowym (TAI). Dla większości zastosowań ta różnica jest pomijalna i preferuje się uproszczony system.

Czy mogę używać Unix timestamps do wszystkich potrzeb związanych z datą/czasem?

Unix timestamps świetnie nadają się do przechowywania i przesyłania danych czasowych, ale do wyświetlania użytkownikom powinieneś konwertować je na lokalne formaty czasu. Są idealne do obliczeń, sortowania i przechowywania danych, jednak czytelne formaty jak ISO 8601 są lepsze dla interfejsów użytkownika i logów.