Epoch Converter: timestamp na datę i odwrotnie
Wklej dowolny timestamp lub datę: zobaczysz ją słownie, w swojej strefie czasowej i w UTC, razem ze wszystkim, czym może być ta liczba.
Jedna liczba · wszystkie epoki
7 odczytów daje prawdziwą datęOdczytano jako Unix (sekundy) na podstawie długości: 9 cyfr. Jako GPS (sekundy) byłaby to data 6 grudnia 2005: też prawdziwa, więc ten odczyt jest dostępny jednym kliknięciem.
- Milisekundy
- Mikrosekundy
- Nanosekundy
- ISO 8601
Zegar twojej przeglądarki liczy pełne milisekundy: zera po nich to wypełnienie, a nie precyzja.
UTC · UTC+00:00 w tym dniu
1793813880- Milisekundy
1793813880000- ISO 8601
2026-11-04T17:38:00Z
Początek i koniec w strefie UTC
| Początek | Koniec | |
|---|---|---|
| Dzień | 1793750400 | 1793836799 |
| Miesiąc | 1793491200 | 1796083199 |
| Rok | 1767225600 | 1798761599 |
Wszystko dzieje się w tej karcie: nic z tego, co wklejasz, nie jest nigdzie wysyłane.
Jak zamienić timestamp na datę i datę na timestamp
Wklej swój timestamp w pole, w jakiejkolwiek jest jednostce, a data pojawi się w twojej strefie czasowej i w UTC. Możesz też wpisać datę, nagłówek Date z e-maila albo słowo teraz, żeby dostać jej czas unixowy.
Strona odczytuje liczbę jednocześnie jako sekundy, milisekundy, mikrosekundy i nanosekundy, wybiera odczyt, który daje prawdziwą datę, mówi dlaczego, a pozostałe odczyty zostawia o jedno kliknięcie dalej. Pod odpowiedzią te same cyfry są odczytane jako znacznik czasu Windows, .NET, Mac, Excel, NTP i GPS, a każdy format można skopiować.

Wklej cokolwiekLiczbę w dowolnej jednostce, datę ISO, nagłówek Date z e-maila, SQL datetime albo słowo „teraz”. Etykieta mówi, jak to odczytano.Policzone cyfryLinijka pod liczbą grupuje cyfry po trzy, więc 18 cyfr czyta się jako sześć grup: pierwsza wskazówka, czym jest ta liczba.Najpierw odpowiedźDzień tygodnia i data słownie, potem godzina w UTC i w twojej strefie czasowej oraz każdy format do skopiowania.Który odczyt i dlaczegoStrona mówi słowami, który odczyt wybrała i dlaczego, i podaje inny odczyt, który też daje prawdziwą datę.Każda inna epokaTe same cyfry odczytane w każdej jednostce i każdej epoce, każda jako pasek od własnego początku. Wybierz wiersz, aby użyć tego odczytu.Czym jest czas unixowy (Unix epoch) i dlaczego zaczyna się w 1970 roku?
Czas unixowy, czyli epoch time, to liczba sekund od 1970-01-01 00:00:00 UTC – chwili, którą POSIX nazywa Epoką. Timestamp 0 to właśnie ta chwila, a 817876800 to 1995-12-02 04:00 UTC.
Żadne źródło pierwotne nie podaje, dlaczego wybrano rok 1970. Pierwszy podręcznik Uniksa z listopada 1971 roku liczył sześćdziesiąte części sekundy od 1 stycznia 1971 i zauważał, że ten zegar wyczerpie się po mniej więcej dwóch i pół roku; w wydaniu siódmym z 1979 roku licznik podawał już sekundy od 1 stycznia 1970 – okrągłej daty bliskiej czasowi, w którym powstawał Unix. Sam UTC obowiązuje dopiero od 1972 roku, więc wcześniejsze znaczniki czasu są w UTC umownie.
zapełnił się 8 kwietnia 1973 · 2,27 roku
1901-12-13 → 2038-01-1968 lat w każdą stronę
wartości ujemne: przed rokiem 1970
UNIX Programmer's Manual, wydanie pierwsze, time (II), 3 listopada 1971
Chronologicznie--nastawiony użytkownik zauważy, że 2**32 sześćdziesiątych części sekundy to zaledwie około 2,5 roku.
Wszystkie epoki, które odczytuje ta strona, na jednej linii
- 1
.NET
0001-01-01· takty po 100 ns - 2
Windows FILETIME
1601-01-01· takty po 100 ns - 3
Excel
1899-12-30· dni - 4NTP
1900-01-01· sekundy - 5
Mac HFS+
1904-01-01· sekundy - 6
Excel 1904
1904-01-01· dni - 7Unix
1970-01-01· sekundy - 8GPS
1980-01-06· sekundy
Czy mój timestamp jest w sekundach, milisekundach, mikrosekundach czy nanosekundach?
Policz cyfry: bieżący timestamp ma 10 cyfr w sekundach, 13 w milisekundach, 16 w mikrosekundach i 19 w nanosekundach. JavaScript i Java używają milisekund; narzędzia uniksowe i większość API – sekund.
Liczba cyfr to mocna wskazówka, a nie dowód. Znaczniki czasu NTP, GPS i Mac też mają dziś dziesięć cyfr, a Windows FILETIME i liczba taktów .NET – po osiemnaście, dlatego ta strona odczytuje wszystkie skale naraz i pokazuje wybrany odczyt obok pozostałych. FILETIME jest też większy, niż JavaScript potrafi dokładnie przechować, więc strona zachowuje cyfry dokładnie tak, jak je wklejono.
10 cyfr · 4 skale · same cyfry nie mówią, która to skala
18 cyfr · 2 skale · różni je tylko pierwsza cyfra
Sekundy o długości 10 cyfr obejmują wartości od 2001-09-09T01:46:40Z do 2286-11-20T17:46:39Z. To zakres obejmujący 285 lat, a nie jednostka.
Jak zamienić timestamp Unix na datę w swojej strefie czasowej?
Timestamp Unix nie ma strefy czasowej: oznacza jedną chwilę wszędzie. Data zależy od miejsca, w którym ją odczytujesz, więc strona pokazuje obok siebie twoją strefę i UTC, a także każdą strefę, którą wybierzesz.
Wybór strefy korzysta z bazy stref czasowych IANA, tej samej, której używa twój system operacyjny, więc zmiany czasu letniego są stosowane dla samej daty, a nie dla dzisiejszego dnia. W drugą stronę data wpisana bez przesunięcia jest odczytywana jako UTC, a strona proponuje odczytanie jej w twojej strefie.
Jedna chwila1793057400= 2026-10-26T23:30:00Z
- Los Angeles16:30pon., 26 paźUTC−07:00
- Nowy Jork19:30pon., 26 paźUTC−04:00
- UTC23:30pon., 26 paźUTC+00:00
- Berlin00:30wt., 27 paźUTC+01:00
- Kalkuta05:00wt., 27 paźUTC+05:30
- Tokio08:30wt., 27 paźUTC+09:00
- Lord Howe10:30wt., 27 paźUTC+11:00
Berlin, 29 marca 202623 godziny · zegary przeskoczyły z 02:00 na 03:00
Berlin, 25 października 202625 godzin · zegary cofnięto z 03:00 na 02:00
czas środkowoeuropejski standardowy · UTC+01:00czas środkowoeuropejski letni · UTC+02:00godzina, która wystąpiła dwa razygodzina, której nie było
Co stanie się z czasem unixowym w 2038 roku?
Czas unixowy zapisany jako 32-bitowa liczba całkowita ze znakiem kończy się na 2147483647, czyli 2038-01-19 03:14:07 UTC; sekundę później przekręca się na datę w grudniu 1901 roku. Systemów liczących na 64 bitach, czego teraz wymaga POSIX, to nie dotyczy.
W 2026 roku ryzyko dotyczy przechowywania, a nie zegarów: kolumna TIMESTAMP w MySQL wciąż kończy się na 2038-01-19 03:14:07 UTC, podobnie jak każdy format pliku czy urządzenie wbudowane, które zachowało 32-bitowe pole. NTP ma własne, wcześniejsze przekręcenie: jego 32-bitowe sekundy przekręcą się w 2036 roku. Strona zaznacza każdy timestamp blisko granicy roku 2038 lub za nią.
2 147 483 647największa 32-bitowa liczba ze znakiem
01111111 11111111 11111111 11111111wt., 19 sty 203803:14:07 UTC
+ 1 sekunda
-2 147 483 648te same 32 bity, odczytane jako liczba ze znakiem
10000000 00000000 00000000 00000000pt., 13 gru 190120:45:52 UTC
Ostatnia sekunda, UTC
time_t ze znakiem2038-01-19 03:14:07TIMESTAMP w MySQL2038-01-19 03:14:07dziś2038-01-19
time_t, którego wymaga POSIX.1-2024, obejmuje w przybliżeniu 292 miliardy lat w obie strony od roku 1970. Źródło: POSIX.1-2024 A.4.19, MySQL 8.4, RFC 5905 §6, TN1150Czy timestamp Unix może być ujemny?
Tak: ujemny timestamp to data sprzed 1970 roku. -1 to 1969-12-31 23:59:59 UTC, a -86400 to 1969-12-31 00:00:00 UTC.
Sam POSIX pozostawia wartości ujemne niezdefiniowane, ale GNU i większość systemów traktują je jako daty sprzed 1970 roku na mocy udokumentowanego rozszerzenia, podobnie jak JavaScript, Python i PostgreSQL. Wyjątkiem jest MySQL: jego kolumna TIMESTAMP zaczyna się w 1970 roku, a FROM_UNIXTIME(-1) zwraca NULL. Daty urodzenia i zapisy historyczne to zwykłe ujemne znaczniki czasu, więc strona odczytuje je jako daty, zamiast uznawać je za błąd.
SekundyJak daleko wstecz (skala log.)Data, UTC
0czw., 1 sty 197000:00:00 UTC-1śr., 31 gru 196923:59:59 UTC-86 400śr., 31 gru 196900:00:00 UTC-31 536 000śr., 1 sty 196900:00:00 UTC-1 000 000 000niedz., 24 kwi 193822:13:20 UTC-2 147 483 648pt., 13 gru 190120:45:52 UTC- POSIX
Jeśli rok jest <1970 lub wartość jest ujemna, zależność jest niezdefiniowana.
GNU date
@-1to 1969-12-31 23:59:59 UTC: wartości ujemne jako rozszerzenie POSIXJavaScriptdowolna data w promieniu około 273 790 lat od roku 1970, w obie strony
MySQL TIMESTAMPzaczyna się od 1970-01-01 00:00:01 UTC: nie przechowa wartości ujemnej
Windows, .NET, Mac, Excel, NTP i GPS: inne epoki
Wiele systemów liczy od własnego zera: Windows od 1601 roku, .NET od roku 1, Mac i HFS+ od 1904, Excel od 1900, NTP od 1900, a GPS od 6 stycznia 1980. Liczba, która nie ma sensu jako timestamp Unix, często jest jedną z nich.
Na przykład FILETIME 133756272000000000 liczy 100-nanosekundowe odstępy od 1601 roku i oznacza 2024-11-09 12:00:00 UTC. Excel liczy dni i celowo traktuje rok 1900 jako przestępny, więc jego liczby poniżej 61 są przesunięte o dzień, a strona je oznacza. Czas GPS pomija sekundy przestępne i od 2017 roku wyprzedza UTC o 18 sekund.
| Epoka | Liczy | Od | W dniu 26 paź 2026 | Cyfry | Strefa czasowa | Gdzie ją spotkasz |
|---|---|---|---|---|---|---|
| Unix (sekundy) | sekundy | 1970-01-01 | 1792972800 | 10 | UTC (POSIX) | date +%s, time.time() w Pythonie |
| milisekundy | 1970-01-01 | 1792972800000 | 13 | UTC | Date.now() w JavaScripcie, Java | |
| nanosekundy | 1970-01-01 | 1792972800000000000 | 19 | UTC | UnixNano() w Go | |
| takty po 100 ns | 1601-01-01 | 134374464000000000 | 18 | UTC (na FAT: czas lokalny) | NTFS, lastLogon w Active Directory, Win32 | |
| takty po 100 ns | 0001-01-01 | 639285696000000000 | 18 | UTC lub lokalny, zależnie od Kind | właściwość DateTime.Ticks | |
| dni | 1899-12-30 | 46321 | 5 | brak: czas z zegara | Excel, Google Sheets, LibreOffice | |
| dni | 1904-01-01 | 44859 | 5 | brak: czas z zegara | starsze wersje Excela dla Maca | |
| sekundy | 1904-01-01 | 3875817600 | 10 | GMT (klasyczny HFS: lokalny) | daty plików HFS+ | |
| NTP (sekundy) | sekundy | 1900-01-01 | 4001961600 | 10 | UTC | pakiety NTP |
| GPS (sekundy) | sekundy | 1980-01-06 | 1477008018 | 10 | bez sekund przestępnych: UTC + 18 s | odbiorniki GPS, pliki RINEX |
Czy czas unixowy uwzględnia sekundy przestępne?
Nie. Czas unixowy daje każdej dobie dokładnie 86 400 sekund, więc sekunda przestępna nie ma własnego numeru, a POSIX mówi to wprost: czas POSIX rozłożony na składowe niekoniecznie jest UTC, mimo że tak wygląda.
Od 1972 roku do UTC dodano 27 sekund przestępnych; czas unixowy nie ma liczby dla dodatkowej sekundy, więc jeden timestamp oznacza dwie sekundy. Ostatnia była 2016-12-31, a w 2022 roku Generalna Konferencja Miar postanowiła, że do 2035 roku zostanie podniesiony limit, z powodu którego są potrzebne, co w praktyce je kończy. Czas GPS, który nigdy ich nie miał, pokazuje różnicę: wyprzedza UTC o 18 sekund.
Ostatnie sekundy dnia 31 grudnia 1998
Czas unixowy podaje 915148800 dwa razy; czas GPS, który nie ma sekund przestępnych, liczy dalej.
27 sekund przestępnychżadnej po 31 grudnia 2016 · żadnej zapowiedzianej przed 28 czerwca 2027
przed początkiem czasu GPSod początku czasu GPS: każda przesuwała go o kolejną sekundę do przodu
POSIX.1-2024, Rationale A.4.19
Uniwersalny czas koordynowany (UTC) uwzględnia sekundy przestępne. Jednak w czasie POSIX (sekundach od Epoki) sekundy przestępne są ignorowane (niestosowane), aby zapewnić łatwą i zgodną metodę obliczania różnic czasu. Dlatego czas POSIX rozłożony na składowe niekoniecznie jest UTC, mimo że tak wygląda.
Timestamp Unix w Pythonie, JavaScripcie, Javie, C#, Go, SQL i powłoce
Każdy język zamienia go w obie strony w jednej lub dwóch linijkach. Pułapki to jednostka (JavaScript i Java liczą milisekundy) i strefa czasowa (baza danych może odczytać wartość w strefie swojej sesji).
Każdy przykład poniżej zamienia 817876800 na datę, a datę z powrotem na sekundy, i każdy został uruchomiony, żeby sprawdzić wynik. W powłoce macOS i systemy BSD przyjmują date -r 817876800, a GNU/Linux – date -d @817876800: te polecenia nie są wymienne.
from datetime import datetime, timezone t = datetime.fromtimestamp(817876800, tz=timezone.utc) print(t.isoformat()) # 1995-12-02T04:00:00+00:00 back = datetime(1995, 12, 2, 4, 0, tzinfo=timezone.utc) print(int(back.timestamp())) # 817876800
Uruchomiono 26 października 2026 (Python 3.14.4): wypisuje to, co pokazują komentarze.
const t = new Date(817876800 * 1000); // Date counts milliseconds console.log(t.toISOString()); // 1995-12-02T04:00:00.000Z const back = Date.UTC(1995, 11, 2, 4, 0, 0) / 1000; // months count from 0 console.log(back); // 817876800
Uruchomiono 26 października 2026 (Node.js 22.23.2): wypisuje to, co pokazują komentarze.
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant t = Instant.ofEpochSecond(817876800L);
System.out.println(t); // 1995-12-02T04:00:00Z
long back = Instant.parse("1995-12-02T04:00:00Z").getEpochSecond();
System.out.println(back); // 817876800
}
}Uruchomiono 26 października 2026 (OpenJDK 25.0.2): wypisuje to, co pokazują komentarze.
var t = DateTimeOffset.FromUnixTimeSeconds(817876800); Console.WriteLine(t.ToString("o")); // 1995-12-02T04:00:00.0000000+00:00 var back = new DateTimeOffset(1995, 12, 2, 4, 0, 0, TimeSpan.Zero).ToUnixTimeSeconds(); Console.WriteLine(back); // 817876800
Uruchomiono 26 października 2026 (.NET 10.0.103): wypisuje to, co pokazują komentarze.
package main import ( "fmt" "time" ) func main() { t := time.Unix(817876800, 0).UTC() fmt.Println(t.Format(time.RFC3339)) // 1995-12-02T04:00:00Z back := time.Date(1995, 12, 2, 4, 0, 0, 0, time.UTC).Unix() fmt.Println(back) // 817876800 }
Uruchomiono 26 października 2026 (Go 1.25.5): wypisuje to, co pokazują komentarze.
SET TIME ZONE 'UTC'; SELECT to_timestamp(817876800); -- 1995-12-02 04:00:00+00 SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '1995-12-02 04:00:00+00')::bigint; -- 817876800
Uruchomiono 26 października 2026 (PostgreSQL 16.10): wypisuje to, co pokazują komentarze.
SET time_zone = '+00:00'; SELECT FROM_UNIXTIME(817876800); -- 1995-12-02 04:00:00 SELECT UNIX_TIMESTAMP('1995-12-02 04:00:00'); -- 817876800
Uruchomiono 26 października 2026 (MySQL 9.5.0): wypisuje to, co pokazują komentarze.
# macOS and the BSDs: -r takes seconds date -u -r 817876800 '+%F %T' # 1995-12-02 04:00:00 date -u -j -f '%F %T' '1995-12-02 04:00:00' +%s # 817876800 # Linux (GNU coreutils): -d @seconds; GNU's -r reads a file's date date -u -d @817876800 '+%F %T' # 1995-12-02 04:00:00 date -u -d '1995-12-02 04:00:00' +%s # 817876800
Uruchomiono 26 października 2026 (polecenie date z macOS 26.6 i z GNU coreutils 9.12): wypisuje to, co pokazują komentarze.
Czas unixowy: pytania i odpowiedzi
Czym jest epoch time (Unix epoch)?
Jak zamienić timestamp na datę?
new Date(817876800 * 1000) w JavaScripcie.Jaki jest teraz czas unixowy?
date +%s, w sekundach.Czy timestamp Unix jest w sekundach, czy w milisekundach?
Dlaczego czas unixowy zaczyna się w 1970 roku?
Czy czas unixowy to to samo co UTC?
Czym jest problem roku 2038?
TIMESTAMP w MySQL wciąż kończy się na tej sekundzie.Czy mogę zamienić datę sprzed 1970 roku?
TIMESTAMP w MySQL ich nie przechowa, ale większość języków i baz danych odczytuje je jako daty sprzed 1970 roku.Jak zamienić Windows FILETIME na datę?
Jak zamienić liczbę seryjną daty z Excela na timestamp?
Czy konwerter obsługuje strefy czasowe i czas letni?
Czy mój timestamp jest gdzieś wysyłany?
Czegoś brakuje?Zaproponuj funkcję lub nowe narzędzie
Powiązane narzędzia
Generator UUID
Generuj masowo UUID v4, v7, v1, v5 i v3 lub GUID w dowolnym formacie i dekoduj wersję oraz znacznik czasu UUID
Dekodowanie i Kodowanie Base64
Dekoduj i koduj Base64: tekst (UTF-8, URL-safe), obrazy, pliki PDF i dowolne pliki do Base64 lub data URI
Tłumacz Binarny
Zamieniaj tekst na kod binarny i kod binarny na tekst: autowykrywanie, hex, system dziesiętny i ósemkowy
Kalkulator podsieci
Sieć, broadcast, dostępne hosty i maski dla każdego bloku IPv4 lub IPv6, a także VLSM, podział i podsieci w chmurze