Konwerter znaczników czasu

Konwertuj znaczniki czasu Unix na czytelne daty i odwrotnie

Bieżący znacznik czasu Unix

1774458451

Wed, 25 Mar 2026 17:07:31 GMT

lub

Czym jest znacznik czasu Unix?

Znacznik czasu Unix (zwany też czasem epoki lub czasem POSIX) to liczba sekund, które upłynęły od 1 stycznia 1970 roku, godz. 00:00:00 UTC. Ta data nosi nazwę epoki Unix. Z każdą upływającą sekundą licznik rośnie o jeden, co pozwala zapisać każdy moment w czasie jako pojedynczą liczbę całkowitą. Konwerter znaczników czasu Unix tłumaczy tę liczbę na czytelne formaty dat, takie jak ISO 8601, RFC 2822 lub ciągi znaków zależne od ustawień regionalnych.

Znaczniki czasu Unix to standardowy sposób reprezentowania czasu w informatyce. Bazy danych przechowują kolumny created_at i updated_at jako liczby całkowite lub znaczniki czasu w milisekundach. Odpowiedzi API zawierają znaczniki czasu w nagłówkach pamięci podręcznej (Expires, Last-Modified), żądaniach JWT (iat, exp, nbf) oraz dziennikach zdarzeń. Pliki dziennika nginx, syslog i frameworków aplikacyjnych używają czasu epoki. Format jest jednoznaczny, ponieważ zawsze reprezentuje UTC — bez stref czasowych ani przesunięcia czasu letniego, które mogłyby być błędnie interpretowane.

Ręczne przeliczanie między znacznikami czasu a datami jest podatne na błędy. Wartość taka jak 1711324800 nie daje żadnej wizualnej wskazówki co do reprezentowanej daty. To narzędzie konwertuje znaczniki czasu Unix na czytelne daty i odwrotnie. Niezależnie od tego, czy odczytujesz żądanie exp z JWT, debugujesz zapytanie do bazy danych, czy sprawdzasz znacznik czasu w dzienniku — narzędzie automatycznie obsługuje wartości 10-cyfrowe (sekundy) i 13-cyfrowe (milisekundy).

Dlaczego warto używać tego konwertera znaczników czasu?

Odczytywanie surowych znaczników czasu Unix z dzienników, baz danych lub odpowiedzi API wymaga albo zapamiętania działań matematycznych związanych z epoką, albo pisania jednorazowego kodu. Ten konwerter działa w przeglądarce bez żadnej konfiguracji. Czy chcesz zdekodować datę wygaśnięcia JWT, przeanalizować wiersz dziennika, czy ustawić TTL w bazie danych — wynik jest o jedno kliknięcie. Narzędzie automatycznie wykrywa, czy wartość to 10-cyfrowy znacznik czasu w sekundach, czy 13-cyfrowy w milisekundach, więc nigdy nie musisz ręcznie dzielić przez 1000. Całe przetwarzanie odbywa się lokalnie w przeglądarce. Żadne dane nie opuszczają Twojego komputera, więc znaczniki czasu z systemów wewnętrznych i poufnych dzienników pozostają prywatne.

Natychmiastowa konwersja
Wpisz znacznik czasu lub wybierz datę i od razu zobaczysz wynik. Bez przesyłania formularzy ani przeładowywania strony. Obsługuje zarówno sekundy, jak i milisekundy.
🔒
Przetwarzanie z zachowaniem prywatności
Wszystkie konwersje są wykonywane w przeglądarce przy użyciu wbudowanego obiektu Date w JavaScript. Żadne dane nie opuszczają Twojego komputera, więc znaczniki czasu z systemów wewnętrznych pozostają prywatne.
🔄
Konwersja dwukierunkowa
Konwertuj znaczniki czasu Unix na daty i daty na znaczniki czasu. Wpisz wartość w dowolnym kierunku i uzyskaj odpowiedni wynik bez przełączania narzędzi.
🌐
Wiele formatów wyjściowych
Wyświetl swój znacznik czasu jako UTC, czas lokalny, ISO 8601 i czas względny jednocześnie. Skopiuj dowolny format jednym kliknięciem.

Zastosowania konwertera znaczników czasu

Programowanie front-end
Dekoduj znaczniki czasu z odpowiedzi REST API, aby sprawdzić, czy wyświetlanie dat jest poprawne w różnych strefach czasowych. Sprawdź, czy API zwraca sekundy, czy milisekundy.
Inżynieria back-end
Konwertuj znaczniki czasu z bazy danych podczas debugowania zapytań. Sprawdź, czy wartości created_at, updated_at i expires_at odpowiadają oczekiwanym datom po migracjach lub zmianach stref czasowych.
DevOps i SRE
Tłumacz wartości epoki z plików dziennika, pulpitów nawigacyjnych monitorowania (Grafana, Datadog) i systemów alertów, aby precyzyjnie określić, kiedy doszło do incydentu lub zakończyło się wdrożenie.
Zapewnienie jakości i testowanie
Generuj konkretne znaczniki czasu dla danych testowych. Sprawdź, czy funkcje zależne od czasu, takie jak wygasanie tokenów, TTL pamięci podręcznej i zaplanowane zadania, są wyzwalane we właściwym momencie.
Inżynieria danych
Konwertuj kolumny znaczników czasu podczas przeglądania surowych eksportów danych z PostgreSQL, MySQL lub hurtowni danych. Potwierdź, że potoki ETL poprawnie zachowują informacje o strefach czasowych.
Nauka i edukacja
Zrozum, jak komputery wewnętrznie reprezentują czas. Eksperymentuj z przypadkami brzegowymi, takimi jak problem roku 2038, ujemne znaczniki czasu dla dat sprzed 1970 roku i precyzja milisekundowa.

Tabela referencyjna znaczników czasu Unix

Poniższa tabela przedstawia dobrze znane znaczniki czasu Unix i odpowiadające im daty. Wartości te są przydatne do szybkiej weryfikacji, testowania i zrozumienia zakresu 32-bitowych i 64-bitowych znaczników czasu.

Znacznik czasuData (UTC)Uwaga
0Jan 1, 1970 00:00:00 UTCUnix epoch start
86400Jan 2, 1970 00:00:00 UTCExactly 1 day
946684800Jan 1, 2000 00:00:00 UTCY2K
1000000000Sep 9, 2001 01:46:40 UTC10-digit milestone
1234567890Feb 13, 2009 23:31:30 UTCAscending digits
1700000000Nov 14, 2023 22:13:20 UTCRecent 10-digit
2000000000May 18, 2033 03:33:20 UTCNext 10-digit milestone
2147483647Jan 19, 2038 03:14:07 UTCY2038 (signed 32-bit max)
4102444800Jan 1, 2100 00:00:00 UTCNext century

Porównanie formatów daty i czasu

Różne systemy i standardy reprezentują ten sam moment w czasie przy użyciu różnych formatów ciągów znaków. Tabela porównuje najczęściej spotykane formaty w API, dziennikach i bazach danych.

FormatPrzykładUwagi
Unix (seconds)1711324800Integer, no timezone info
Unix (milliseconds)1711324800000Used by JavaScript Date.now()
ISO 86012024-03-25T00:00:00ZMachine-readable, includes timezone
RFC 2822Mon, 25 Mar 2024 00:00:00 +0000Email and HTTP headers
UTC stringMon, 25 Mar 2024 00:00:00 GMTDate.prototype.toUTCString()
Human readableMarch 25, 2024, 12:00:00 AMLocale-dependent, display only

Przykłady kodu

Konwertuj między znacznikami czasu Unix a datami w języku, z którego korzystasz. Każdy przykład pokazuje oba kierunki: znacznik czasu na datę i datę na znacznik czasu.

JavaScript (browser / Node.js)
// Current Unix timestamp in seconds
Math.floor(Date.now() / 1000)  // → 1711324800

// Unix timestamp to Date object
const date = new Date(1711324800 * 1000)
date.toISOString()             // → "2024-03-25T00:00:00.000Z"
date.toUTCString()             // → "Mon, 25 Mar 2024 00:00:00 GMT"

// Date string to Unix timestamp
Math.floor(new Date('2024-03-25T00:00:00Z').getTime() / 1000)
// → 1711324800

// Millisecond timestamps (common in JS APIs)
Date.now()                     // → 1711324800000 (ms)
Date.parse('2024-03-25')       // → 1711324800000 (ms)
Python
import time
from datetime import datetime, timezone

# Current Unix timestamp
int(time.time())                                    # → 1711324800

# Unix timestamp to datetime
dt = datetime.fromtimestamp(1711324800, tz=timezone.utc)
dt.isoformat()                                      # → '2024-03-25T00:00:00+00:00'
dt.strftime('%Y-%m-%d %H:%M:%S %Z')                 # → '2024-03-25 00:00:00 UTC'

# Datetime string to Unix timestamp
dt = datetime.fromisoformat('2024-03-25T00:00:00+00:00')
int(dt.timestamp())                                  # → 1711324800

# Parse RFC 2822 dates (from email headers)
from email.utils import parsedate_to_datetime
parsedate_to_datetime('Mon, 25 Mar 2024 00:00:00 +0000').timestamp()
# → 1711324800.0
Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Current Unix timestamp
    now := time.Now().Unix() // → 1711324800

    // Unix timestamp to time.Time
    t := time.Unix(1711324800, 0).UTC()
    fmt.Println(t.Format(time.RFC3339))
    // → 2024-03-25T00:00:00Z

    // Parse a date string to Unix timestamp
    parsed, _ := time.Parse(time.RFC3339, "2024-03-25T00:00:00Z")
    fmt.Println(parsed.Unix())
    // → 1711324800

    // Millisecond timestamp
    ms := time.Now().UnixMilli() // → 1711324800000
    fmt.Println(now, ms)
}
CLI (date / bash)
# Current Unix timestamp
date +%s                                    # → 1711324800

# Convert timestamp to human-readable date (GNU date)
date -d @1711324800                         # → Mon Mar 25 00:00:00 UTC 2024

# Convert timestamp to ISO 8601
date -d @1711324800 --iso-8601=seconds      # → 2024-03-25T00:00:00+00:00

# macOS (BSD date) — slightly different flags
date -r 1711324800                          # → Mon Mar 25 00:00:00 UTC 2024

# Date string to timestamp (GNU date)
date -d "2024-03-25 00:00:00 UTC" +%s       # → 1711324800

Często zadawane pytania

Jaka jest różnica między znacznikami czasu Unix w sekundach a milisekundach?
Znacznik czasu Unix w sekundach to 10-cyfrowa liczba całkowita (do listopada 2286), natomiast znacznik w milisekundach ma 13 cyfr. Metoda Date.now() w JavaScript zwraca milisekundy. Większość narzędzi wiersza poleceń Unix i funkcja time.time() w Pythonie zwracają sekundy. Aby dokonać konwersji, pomnóż sekundy przez 1000 lub podziel milisekundy przez 1000 i zaokrąglij wynik w dół.
Czym jest problem roku 2038?
Systemy przechowujące znaczniki czasu Unix jako 32-bitową liczbę całkowitą ze znakiem przepełnią się 19 stycznia 2038 roku o godz. 03:14:07 UTC. Maksymalna wartość, jaką może przechować 32-bitowa liczba całkowita ze znakiem, to 2 147 483 647 sekund od epoki. Po jej przekroczeniu wartość przechodzi na liczbę ujemną, którą system interpretuje jako datę w grudniu 1901 roku. Nowoczesne systemy 64-bitowe używają 64-bitowych liczb całkowitych i nie są podatne na ten problem.
Jak przekonwertować znacznik czasu Unix na datę w JavaScript?
Utwórz nowy obiekt Date, przekazując znacznik czasu pomnożony przez 1000 (ponieważ JavaScript używa milisekund): new Date(1711324800 * 1000). Następnie wywołaj .toISOString(), .toUTCString() lub .toLocaleString(), aby uzyskać potrzebny format. W odwrotnym kierunku użyj Math.floor(new Date('2024-03-25').getTime() / 1000).
Czy znaczniki czasu Unix mogą reprezentować daty sprzed 1970 roku?
Tak. Daty sprzed epoki Unix (1 stycznia 1970 roku) są reprezentowane jako ujemne liczby całkowite. Na przykład 31 grudnia 1969 roku o godz. 23:59:59 UTC odpowiada znacznikowi czasu -1. Większość nowoczesnych języków programowania obsługuje ujemne znaczniki czasu poprawnie, choć niektóre starsze systemy i bazy danych mogą ich nie obsługiwać.
Dlaczego API używają znaczników czasu Unix zamiast ciągów dat?
Znaczniki czasu Unix są niezależne od strefy czasowej, kompaktowe (pojedyncza liczba całkowita zamiast ciągu o długości 25+ znaków) i trywialnie porównywalne. Sortowanie, porównywanie i obliczanie różnic czasowych na liczbach całkowitych jest szybsze niż parsowanie ciągów dat. Eliminują też niejednoznaczność wynikającą z formatów zależnych od ustawień regionalnych, takich jak MM/DD/RRRR kontra DD/MM/RRRR.
Jak uzyskać bieżący znacznik czasu Unix z wiersza poleceń?
W systemach Linux i macOS uruchom date +%s, aby wyświetlić bieżący znacznik czasu w sekundach. W systemie Windows za pomocą PowerShell użyj [DateTimeOffset]::UtcNow.ToUnixTimeSeconds(). Oba polecenia zwracają liczbę sekund od epoki Unix w postaci liczby całkowitej. Aby uzyskać precyzję milisekundową w systemie Linux, użyj date +%s%3N, co dołącza komponent milisekundowy bezpośrednio.
Jaka jest różnica między UTC a GMT w znacznikach czasu?
W praktyce obliczeniowej UTC i GMT oznaczają ten sam czas. UTC (Skoordynowany Czas Uniwersalny) to nowoczesny standard definiowany przez zegary atomowe, natomiast GMT (Czas Greenwich) to starszy standard astronomiczny. Znaczniki czasu Unix zawsze bazują na UTC. Obie nazwy mogą pojawiać się w sformatowanych ciągach dat, ale leżąca u ich podstaw wartość jest identyczna.