Unix laika zīmoga pārveidotājs uz datumu

Pārveidojiet Unix laika zīmogu par lasāmu datumu un laiku — vai jebkuru datumu atpakaļ par Unix laika zīmogu. Atbalsta sekundes un milisekundes.

Dalīties ar šo rīku

Iegult savā vietnē

Kas ir Unix laika spiedols?

Unix laika spiedols, saukts arī par Unix time vai POSIX time, ir sekunžu skaits, kas pagājis kopš 1970-01-01 00:00:00 UTC, kas pazīstams kā Unix epohā. Tas ir plaši izmantots standarts informātikas nozarē, jo laika punktu attēlo kā vienu skaitli, kas padara glabāšanu, salīdzinājumu un matemātiskas operācijas vienkāršas.

JavaScript darbojas iekšēji milisekundēs, tāpēc Date.now() atgriež Unix laika spiedoli, reizinātu ar 1000. Daudzi API, datu bāzes un backend sistēmas izmanto sekundes. Šis rīks pieņem abos formātos un automātiski atpazīst sekundes vai milisekundes, balstoties uz ievadītā skaitļa lielumu.

Nozīmīgi Unix laika spiedoļi

SpiedolsDatums (UTC)Piezīme
01970-01-01 00:00:00Unix epohā
1,000,000,0002001-09-09 01:46:401 miljards sekunžu
2,000,000,0002033-05-18 03:33:202 miljardi sekunžu
2,147,483,6472038-01-19 03:14:07Gada 2038 problēma (maksimums 32-bitu)

Kāpēc 1970?

Unix epohā izvēlēto 1970. gada 1. janvāri bija izvēlējies daļēji pēc konvencijas, daļēji pēc praktiskiem ierobežojumiem. Unix tika izstrādāts vēlajos 1960. gados un 1970. gadu sākumā Bell Labs laboratorijā. Izstrādātāji vajadzēja nesen notikušu, apaļu sākuma datumu laika attēlošanai. 1970. gada 1. janvāris bija pietiekami nesen, lai būtu praktiski nozīmīgs, un tam nebija speciālas tehniskas nozīmes — tas vienkārši bija ērts atskaites punkts.

Citi sistēmu varianti izmanto dažādas epohā sākuma datumus: Windows FILETIME epohā ir 1601. gada 1. janvāris; GPS laiks sākās 1980. gada 6. janvārī; NTP epohā ir 1900. gada 1. janvāris. Konvertējot starp sistēmām, ir svarīgi zināt katras sistēmas epohās datumu.

Sekundes pret milisekundēm

Sākotnējais Unix laika spiedols ir izteikts sekundēs. Lielākā daļa serverus puses programmēšanas valodu un sistēmu (Unix shell, Python time.time(), PHP time(), vairums datu bāzu) izmanto sekundes. JavaScript Date.now() un new Date().getTime() atgriež milisekundes. Šī neatbilstība ir bieža kļūdu avots, kad JavaScript priekšgals komunicē ar backend API.

Unix laika spiedols sekundēs pašlaik ir 10 ciparu skaitlis (aptuveni 1 700 000 000 2023. gadā). Milisekunžu spiedols ir 13 ciparu skaitlis. Kalkulators atpazīst, kuru formātu esat ievadījis, pamatojoties uz ciparu skaitu, un konvertē atbilstoši.

Gada 2038 problēma

Sistēmas, kas Unix laika spiedoli glabā kā parakstītu 32-bitu skaitli, var attēlot datumus tikai līdz 2,147,483,647 sekundēm pēc epohās — kas ir 2038. gada 19. janvāra 03:14:07 UTC. Pēc šī brīža parakstīts 32-bitu skaitlis pārpildās negatīvā virzienā, attēlojot datumu 1901. gadā.

To dažreiz sauc par "Y2K38" problēmu vai Unix Tūkstošgades kļūdu. Modernas 64-bitu sistēmas nav skarta, jo parakstīts 64-bitu skaitlis var attēlot laika spiedoļus aptuveni 292 miljardus gadu. Taču iegultās sistēmas, vecas datu bāzes un senāka 32-bitu programmatūra var joprojām būt neaizsargāta. Daudras nozares — ieskaitant telekomunikācijas, banku sistēmas un rūpnieciskās vadības sistēmas — veic migrācijas, lai risinājuma šo problēmu.

Kā iegūt pašreizējo Unix laika spiedoli

Valoda / videKomanda
JavaScriptMath.floor(Date.now() / 1000)
Pythonimport time; int(time.time())
PHPtime()
Bashdate +%s
SQL (PostgreSQL)EXTRACT(EPOCH FROM NOW())::int
SQL (MySQL)UNIX_TIMESTAMP()
Gotime.Now().Unix()
RustSystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()

Praktiski lietojumi

API izstrāde: REST API bieži izmanto Unix laika spiedoļus created_at, updated_at un token derīguma termiņa laukiem. Laika spiedols ir neatkarīgs no laika joslas un nepārprotams — atšķirībā no formatētu datumu virknēm, kas ir atkarīgas no lokalizācijas un formatēšanas noteikumiem.

Token derīguma termiņš: JWT (JSON Web Tokens) izmanto Unix laika spiedoļus exp (derīguma termiņš) un iat (izdošanas laiks) prasībām. Token beidzas, kad pašreizējais laika spiedols pārsniedz exp vērtību. Derīguma termiņa aprēķināšana — "šis token jābeidz 24 stundās" — nozīmē pievienot 86 400 sekundes pašreizējam laika spiedolim.

Kešatmiņas TTL: Kešatmiņas derīguma termiņš bieži tiek iestatīts kā Unix laika spiedols vai kā sekunžu skaits no tagadnes. Kešatmiņas problēmu atkļūdošana bieži prasa glabātā derīguma termiņa laika spiedola konvertēšanu cilvēka-lasāmā formātā.

Žurnāla analīze: Servera žurnāļi bieži ietver Unix laika spiedoļus. To konvertēšana uz lasāmiem datumiem ir pirmais solis žurnāļa ierakstu korelēšanai ar reālajiem notikumiem.

Datu bāzes glabāšana: Laika spiedoļu glabāšana kā skaitļi, nevis formatētas virknes, novērš laika joslas konvertēšanas kļūdas un vienkāršo kārtošanu, diapazonu vaicājumus un matemātiskas operācijas. Vaicājums "visi ieraksti no pēdējām 7 dienām" kļūst par WHERE created_at > (NOW_UNIX - 604800).