Pretvarač Unix timestamp-a u datum
Pretvorite Unix timestamp u čitljiv datum i vrijeme — ili bilo koji datum natrag u Unix timestamp. Podržava sekunde i milisekunde.
Podijeli ovaj alat
Ugradi na svoju stranicu
Povezani alati
Što je Unix timestamp?
Unix timestamp, poznat i kao Unix time ili POSIX time, predstavlja broj sekundi koje su protekle od 1970-01-01 00:00:00 UTC, što se naziva Unix epoha (Unix epoch). To je široko korišten standard u računarstvu jer predstavlja trenutak u vremenu kao jedan cijeli broj, što olakšava pohranu, usporedbu i aritmetiku.
JavaScript interno radi u milisekundama, pa Date.now() vraća Unix timestamp pomnožen s 1000. Mnogi API‑ji, baze podataka i backend sustavi koriste sekunde. Ovaj alat prihvaća oba formata i automatski prepoznaje sekunde ili milisekunde prema veličini broja koji unesete.
Značajni Unix timestampovi
| Timestamp | Datum (UTC) | Napomena |
|---|---|---|
0 | 1970-01-01 00:00:00 | Unix epoha |
1,000,000,000 | 2001-09-09 01:46:40 | 1 milijarda sekundi |
2,000,000,000 | 2033-05-18 03:33:20 | 2 milijarde sekundi |
2,147,483,647 | 2038-01-19 03:14:07 | Problem godine 2038 (maks. 32-bit) |
Zašto 1970.?
Unix epoha 1. siječnja 1970. odabrana je djelomično po konvenciji, a djelomično zbog praktičnih ograničenja. Unix je razvijan krajem 1960‑ih i početkom 1970‑ih u Bell Labsu. Programerima je trebao noviji, „okrugli“ početni datum za prikaz vremena. 1. siječnja 1970. bio je dovoljno blizu da bude praktičan i nije imao posebno tehničko značenje — bio je samo zgodna referentna točka.
U drugim sustavima postoje druge epohe: Windows FILETIME epoha je 1. siječnja 1601.; GPS vrijeme počinje 6. siječnja 1980.; NTP epoha je 1. siječnja 1900. Kod pretvorbi između sustava, poznavanje epohe svakog sustava je ključno.
Sekunde naspram milisekundi
Izvorni Unix timestamp je u sekundama. Većina serverskih jezika i sustava (Unix shell, Pythonov time.time(), PHP‑ov time(), većina baza podataka) koristi sekunde. JavaScriptov Date.now() i new Date().getTime() vraćaju milisekunde. Ta razlika je čest izvor bugova kada JavaScript frontend komunicira s backend API‑jima.
Unix timestamp u sekundama trenutno je broj od 10 znamenki (oko 1,700,000,000 od 2023.). Timestamp u milisekundama ima 13 znamenki. Kalkulator prepoznaje koji ste format unijeli prema broju znamenki i pretvara sukladno tome.
Problem godine 2038
Sustavi koji pohranjuju Unix timestampe kao potpisani 32‑bitni cijeli broj mogu predstavljati datume samo do 2,147,483,647 sekundi nakon epohe — što je 03:14:07 UTC 19. siječnja 2038. Nakon tog trenutka, potpisani 32‑bitni integer se preljeva (overflow) u veliki negativan broj i predstavlja datum u 1901.
Ovo se ponekad naziva problem "Y2K38" ili Unix Millennium Bug. Moderni 64‑bitni sustavi nisu pogođeni, jer potpisani 64‑bitni integer može predstavljati timestampe otprilike 292 milijarde godina. Ipak, ugrađeni sustavi, naslijeđene baze podataka i stariji 32‑bitni softver i dalje mogu biti ranjivi. Mnoge industrije — uključujući telekomunikacije, bankarstvo i industrijske upravljačke sustave — imaju trajne migracijske napore kako bi to riješile.
Kako dobiti trenutni Unix timestamp
| Jezik / okruženje | Naredba |
|---|---|
| JavaScript | Math.floor(Date.now() / 1000) |
| Python | import time; int(time.time()) |
| PHP | time() |
| Bash | date +%s |
| SQL (PostgreSQL) | EXTRACT(EPOCH FROM NOW())::int |
| SQL (MySQL) | UNIX_TIMESTAMP() |
| Go | time.Now().Unix() |
| Rust | SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs() |
Praktične primjene
Razvoj API‑ja: REST API‑ji često koriste Unix timestampe za polja created_at, updated_at i isteke tokena. Timestamp je neovisan o vremenskoj zoni i nije dvosmislen — za razliku od formatiranih stringova datuma koji ovise o lokalizaciji i konvencijama formatiranja.
Istek tokena: JWT (JSON Web Tokens) koriste Unix timestampe za claimove exp (expiry) i iat (issued at). Token istječe kada trenutni timestamp prijeđe vrijednost exp. Računanje vremena isteka — npr. "ovaj token treba isteći za 24 sata" — zahtijeva dodavanje 86,400 sekundi na trenutni timestamp.
Cache TTL: Istek cachea se često postavlja kao Unix timestamp ili kao broj sekundi od sada. Debugiranje problema s cacheom često zahtijeva pretvaranje pohranjenog timestampa isteka u čitljiv datum.
Analiza logova: Serverski logovi često uključuju Unix timestampe. Pretvaranje u čitljive datume prvi je korak pri povezivanju log zapisa sa stvarnim događajima.
Pohrana u bazi podataka: Pohranjivanje timestampova kao cijelih brojeva umjesto formatiranih stringova pomaže izbjeći bugove s vremenskim zonama i pojednostavljuje sortiranje, upite po rasponu i aritmetiku. Upit "svi zapisi iz zadnjih 7 dana" postaje WHERE created_at > (NOW_UNIX - 604800).
Povezani članci
Unix vremenske oznake: sekunde vs milisekunde i greške koje nastajuNeusaglašenost između JavaScript-a koji koristi milisekunde i većine backend sustava koji koriste sekunde jedan je od najčešćih problema s vremenskim oznakama u razvoju web aplikacija. Evo kako to izgleda i kako to popraviti.
Unix vremenske oznake u zakazanim zadacima i cron poslovimaCron poslovi i zakazani zadaci konstantno se bave vremenom — kada se izvršiti, koliko je prošlo od zadnje izvršitve, je li zadatak zakašnjen. Evo kako se Unix vremenske oznake uklanjaju u sustave zakazivanja i kako ih koristiti za pouzdaniju logiku zadataka.
Unix vremenski žigovi u keširanju i TTL — Kako zapravo funkcionira istjecanjeIstjecanje cache memorije, TTL vrijednosti i logika invalidacije ovise o Unix vremenskim žigovima. Evo kako sustavi keširanja koriste vremenske žigove, kako otkriti probleme sa zastarjelom cache memorijom i što može biti pogrešno.