CodeKitHub
Laiko įrankiai

Unix laiko žymos keitiklis

Paskutinį kartą atnaujinta:

Unix laiko žyma skaičiuoja sekundes, praėjusias nuo 1970 m. sausio 1 d. 00:00:00 UTC — pavyzdžiui, laiko žyma 1 000 000 000 pateko į 2001 m. rugsėjo 9 d. Konvertuokite Unix laiko žymą į suprantamą datą arba pasirinkite datą ir gaukite jos laiko žymą. Įrankis automatiškai atpažįsta sekundes ar milisekundes, rodo vietos laiką, UTC ir ISO 8601, o viršuje rodomas gyvas, tiksinantis epochos laikrodis.

Current timestamp (seconds)
Current timestamp (milliseconds)

Timestamp → Date

Date → Timestamp

Kas yra šis įrankis?

Unix laiko žyma (dar vadinama epochos laiku) yra sekundžių skaičius, praėjęs nuo 1970 m. sausio 1 d. 00:00:00 UTC. Tai standartinis būdas, kaip kompiuteriai saugo laiko momentus: duomenų bazės, žurnalo failai, API ir programavimo kalbos naudoja jį, nes tai vienas nedviprasmiškas skaičius, be jokios laiko juostos painiavos.

Yra dvi atmainos: sekundės (šiandien 10 skaitmenų, pvz., 1720500000) ir milisekundės (13 skaitmenų, naudojamos JavaScript ir Java). Šis įrankis automatiškai atpažįsta, kurią įklijavote.

Kodėl jį naudoti?

  • Iš karto perskaitykite laiko žymas iš žurnalų, duomenų bazės įrašų ir API atsakymų.
  • Automatiškai atpažįsta sekundes ar milisekundes — nereikia spėlioti.
  • Rodo vietos laiką, UTC, ISO 8601 ir santykinį laiką („prieš 3 valandas“) kartu.
  • Konvertuoja abiem kryptimis: laiko žyma → data ir data → laiko žyma.
  • Gyvas dabartinės epochos laikrodis greitam žvilgsniui.

Kaip naudoti

  1. Norėdami dekoduoti: įklijuokite laiko žymą (pvz., 1720500000) į kairįjį langelį ir spustelėkite „Konvertuoti“.
  2. Perskaitykite rezultatą savo vietos laiko juosta, UTC, ISO 8601 ir kaip santykinį laiką.
  3. Norėdami koduoti: pasirinkite datą ir laiką dešiniajame langelyje ir spustelėkite „Konvertuoti“, kad gautumėte jos laiko žymą sekundėmis ir milisekundėmis.
  4. Naudokite gyvą laikrodį viršuje, kai tereikia dabartinės laiko žymos.

Pavyzdys

Įvestis

1720500000

Išvestis

Vietos laikas: 2024-07-09, 13:20:00
UTC laikas:   antr., 2024 07 09 05:20:00 GMT
ISO 8601:   2024-07-09T05:20:00.000Z

10 skaitmenų reikšmė laikoma sekundėmis; 13 skaitmenų reikšmė — milisekundėmis.

Praktiniai patarimai

  • „Neteisingo laiko“ klaidų derinimas: 90 % atvejų tai laiko juostos rodymo problema, o ne neteisinga laiko žyma. Palyginkite UTC eilutę su serverio žurnalais (serveriai paprastai registruoja UTC laiku), prieš imdamiesi keisti kodą.
  • Data, tiksliai atitinkanti 1970-01-01, reiškia, kad laiko žyma buvo 0 arba trūkstama — klasikinis tuščios reikšmės požymis, o ne reali data.
  • Data apie 1970 m. plius kelios dienos paprastai reiškia, kad kažkur sekundės buvo interpretuotos kaip milisekundės; data apie 56 000-uosius metus ir vėliau reiškia priešingai.
  • Skaičiuoklėse: Excel skaičiuoja dienas nuo 1900 m., o ne sekundes nuo 1970 m. Konvertuokite naudodami =(A1/86400)+DATE(1970,1,1) sekundžių laiko žymai.

Realūs naudojimo scenarijai

Kur laiko žymos praktiškai kelia problemų: JWT ir API žetonų galiojimo laukų skaitymas (exp/iat yra Unix sekundės), vartotojo klaidos pranešimo laiko sugretinimas su serverio žurnalo eilutėmis, talpyklos TTL ir cron langų nustatymas, ir sertifikato ar žetono galiojimo pabaigos tikrinimas. Santykinio laiko eilutė („prieš 3 valandas“) yra greičiausias visų šių atvejų patikrinimas.

JWT derinimas pasitaiko pakankamai dažnai, kad verta paaiškinti atskirai: dekoduokite žetono naudingąją apkrovą naudodami Base64 įrankį, tada įklijuokite exp reikšmę čia — akimirksniu gausite atsakymą, ar žetonas nebegalioja ir kiek.

Kodėl Unix laikas buvo suprojektuotas būtent taip

Vieno didėjančio skaičiaus nuo fiksuotos epochos saugojimas (o ne metų/mėnesio/dienos/valandos struktūra) buvo sąmoningas paprastumo sprendimas: dvi laiko žymas galima palyginti ar atimti paprasta aritmetika, be jokios kalendoriaus logikos, todėl duomenų bazės, žurnalų formatai ir praktiškai kiekvienos programavimo kalbos vidinis datos vaizdavimas remiasi šiuo principu. To paprastumo kaina yra būtent tai, ką šis įrankis padeda išspręsti — žmonės nemąsto sekundėmis nuo 1970 m., tad kiekvieną laiko žymą reikia išversti atgal į kalendorinę datą, kad ji taptų suprantama žmogui, o šis vertimas turi vienu metu atsižvelgti į laiko juostą, tikslumą (sekundės ar milisekundės) ir rodymo formatą.

Base64 kodavimas / dekodavimas · Amžiaus skaičiuoklė

Dažniausiai užduodami klausimai

Kaip įrankis atpažįsta, ar mano laiko žyma yra sekundėmis, ar milisekundėmis?

Pagal dydį. Reikšmės, lygios 1 000 000 000 000 (1e12) ar didesnės, laikomos milisekundėmis; mažesnės — sekundėmis. Šiuolaikinės datos yra apie 1,7 milijardo sekundėmis ir apie 1700 milijardų milisekundėmis, tad šie du intervalai realistinėms datoms nesutampa.

Kodėl mano laiko žyma rodo kitą valandą, nei tikėjausi?

Laiko juostos. Laiko žyma visada pagrįsta UTC; eilutė „vietos laikas“ ją konvertuoja į jūsų įrenginio laiko juostą. Palyginkite UTC eilutę su tuo, ką registruoja jūsų šaltinio sistema — daugelis serverių registruoja UTC laiku.

Kas yra 2038 metų problema?

Sistemos, saugančios laiko žymas kaip ženklinius 32 bitų sveikuosius skaičius, persipildo 2038 m. sausio 19 d. Šiuolaikinės sistemos naudoja 64 bitų sveikuosius skaičius ir nėra paveiktos. Šis įrankis naudoja JavaScript skaičius, kurie apdoroja datas gerokai už 2038 metų ribos.

Ar galiu konvertuoti neigiamas laiko žymas?

Taip. Neigiamos laiko žymos reiškia datas prieš 1970 m. sausio 1 d. — pavyzdžiui, -86400 yra 1969 m. gruodžio 31 d.

Ar epocha įtraukia keliamąsias sekundes?

Ne. Unix laikas laikosi nuostatos, kad kiekviena diena turi lygiai 86 400 sekundžių, ir ignoruoja keliamąsias sekundes — sąmoningas supaprastinimas, palengvinantis skaičiavimus.

Susiję įrankiai