Skip to content

Unix laiko žymės keitiklis

Konvertuok Unix laiko žymes į žmonėms skaitomas datas ir atvirkščiai. Gyvai atnaujinamas epochos skaitiklis kas sekundę.

Laiko žymė į datą

Atnaujinama, kol rašote
Įvestis
Unix laiko žymė ?
Detalumas ?

Data į laiko žymę

Atnaujinama, kol rašote
Data ir laikas
Vietinė data ir laikas ?
Redaguoti dalis (metai, mėnuo, diena, laikas)
Metai
Mėnuo
Diena
Valanda
Minutė
Sekundė
Laiko juosta
Laiko juosta ?

Greitai pridėti intervalą

Spustelk, kad pridėtum prie laiko žymės viršuje
1 minutė
60 s
1 valanda
3,600 s
1 diena
86,400 s
1 savaitė
604,800 s
1 mėnuo (30 dienų)
2,592,000 s
1 metai (365,25 dienos)
31,557,600 s

Kaip tai veikia

Unix laiko žymė (dar vadinama Epoch laiku arba POSIX laiku) — tai sekundžių, praėjusių nuo 1970 m. sausio 1 d. 00:00:00 UTC, skaičius; šis momentas vadinamas Unix epocha. Sistema atsirado su Unix operacine sistema septintojo dešimtmečio pradžioje ir tapo visuotiniu laiko vaizdavimo standartu kompiuterijoje.

Unix laikas — vienas sveikasis skaičius, didėjantis lygiai vienetu kas sekundę, todėl nepriklausomas nuo laiko juostos, nedviprasmiškas ir lengvai lyginamas. Duomenų bazės, API, žurnalai ir cron užduotys naudoja Unix laiko žymes, nes jos išvengia laiko juostų, vasaros laiko ir lokalei būdingų datos formatų sudėtingumo. Kai API atsake ar duomenų bazėje matai skaičių, pvz., 1774668919, šis įrankis jį iškart konvertuoja į žmonėms skaitomą datą.

Dauguma sistemų saugo laiką sekundėmis nuo epochos, tačiau JavaScript ir kai kurios API naudoja milisekundes (13 skaitmenų), o didelio tikslumo sistemos — mikrosekundes (16 skaitmenų) arba nanosekundes (19 skaitmenų). Šis įrankis automatiškai aptinka detalumą pagal skaitmenų skaičių ir konvertuoja atitinkamai.

2038 m. problema (Y2K38) — žinoma sistemų, saugančių Unix laiką kaip 32 bitų sveikąjį skaičių su ženklu, riba. Didžiausia vertė 2 147 483 647 atitinka 2038 m. sausio 19 d., antradienį, 03:14:07 UTC. Po šio momento skaitiklis persipildo ir virsta neigiamu skaičiumi, kuris būtų interpretuojamas kaip 1901 m. gruodžio 13 d. Šiuolaikinės 64 bitų sistemos nepaveiktos — jos gali vaizduoti datas milijardus metų į ateitį.

Patarimai ir geroji praktika

JavaScript naudoja milisekundes: Date.now() grąžina milisekundes nuo epochos, ne sekundes. Padalink iš 1000 arba naudok Math.floor(Date.now() / 1000), kad gautum sekundes.
Automatinis aptikimas: šis įrankis detalumą aptinka automatiškai — 10 skaitmenų = sekundės, 13 = milisekundės, 16 = mikrosekundės, 19 = nanosekundės.
Svarbi laiko juosta: Unix laiko žymės visada UTC. Konvertuojant į vietinę datą, rezultatas priklauso nuo juostos. Žurnaluose ir API visada nurodyk UTC.
Neigiamos laiko žymės: vertės iki 1970 m. sausio 1 d. vaizduojamos kaip neigiami skaičiai. Pavyzdžiui, −86400 yra 1969 m. gruodžio 31 d.
Saugojimas duomenų bazėje: kai reikalingi nuo laiko juostos nepriklausantys palyginimai, datas saugok kaip Unix laiko žymes (sveikuosius skaičius). Konvertuok į žmonėms skaitomą formatą tik pateikimo sluoksnyje.

Dažniausiai užduodami klausimai

Kas yra Unix laiko žymė?

Unix laiko žymė — tai sekundžių, praėjusių nuo 1970 m. sausio 1 d. 00:00:00 UTC (Unix epochos), skaičius. Tai vienas sveikasis skaičius, vaizduojantis konkretų laiko momentą, nepriklausomai nuo laiko juostų.

Unix epocha buvo pasirinkta, kai Bell Labs septintojo dešimtmečio pradžioje buvo kuriama Unix operacinė sistema. 1970 m. sausio 1 d. — patogi, apvali data, artima sistemos sukūrimui. Nuo tada tapo visuotiniu standartu kompiuterijoje.

Sistemos, saugančios Unix laiką kaip 32 bitų sveikąjį skaičių su ženklu, persipildys 2038 m. sausio 19 d. 03:14:07 UTC, kai vertė viršys 2 147 483 647. Skaitiklis virs neigiamu skaičiumi, interpretuojamu kaip 1901 m. Šiuolaikinės 64 bitų sistemos nepaveiktos ir gali vaizduoti datas milijardus metų į ateitį.

Standartinės Unix laiko žymės skaičiuoja sekundes nuo epochos (10 skaitmenų, pvz., 1774668919). JavaScript Date.now() ir daugelis API grąžina milisekundes (13 skaitmenų, pvz., 1774668919000). Kai kurios didelio tikslumo sistemos naudoja mikrosekundes (16 skaitmenų) arba nanosekundes (19 skaitmenų).

JavaScript: Math.floor(Date.now() / 1000). Python: import time; int(time.time()). PHP: time(). Bash: date +%s. Java: System.currentTimeMillis() / 1000.

Taip. Neigiamos Unix laiko žymės vaizduoja datas iki 1970 m. sausio 1 d. Pavyzdžiui, −86400 reiškia 1969 m. gruodžio 31 d. 00:00:00 UTC. Dauguma šiuolaikinių sistemų palaiko neigiamas laiko žymes.

Ne. Unix laiko žymės visada yra UTC ir nepriklauso nuo laiko juostų ar vasaros laiko. Ta pati laiko žymė visame pasaulyje vaizduoja tą patį momentą. Laiko juostos konvertavimas vyksta tik rodant laiko žymę kaip vietinę datą.