Kigeuzi cha Muda wa Epoch

Badili mihuri ya muda ya Unix kuwa tarehe za UTC au badili tarehe kuwa sekunde za epoch.

Chagua ikiwa utabadili muhuri wa muda kuwa tarehe au tarehe kuwa muhuri wa muda.
Ingiza muhuri wa muda wa Unix kwa sekunde.

Thamani iliyobadilishwa

2024-03-09T16:00:00.000Z

Thamani ya UTC2024-03-09T16:00:00.000Z
Milisekunde za Unix1,710,000,000,000
Siku ya wikiJumamosi

Jinsi ya kutumia kigeuzi hiki cha muda wa epoch

  1. Chagua hali ya ubadilishaji

    Chagua Epoch kwenda tarehe au Tarehe kwenda epoch katika sehemu ya Hali ya ubadilishaji.

  2. Kwa epoch kwenda tarehe

    Ingiza alama ya muda ya Unix kwa sekunde katika sehemu ya Alama ya muda ya Epoch (sekunde).

  3. Kwa tarehe kwenda epoch

    Chagua tarehe katika Tarehe ya kalenda, kisha weka Saa (UTC), Dakika (UTC), na Sekunde (UTC) inavyohitajika.

  4. Soma matokeo

    Kikokotoo kinaonyesha thamani ya UTC, milisekunde za Unix, na siku ya wiki.

Mbinu

Jinsi kigeuzi hiki cha muda wa epoch kinavyofanya kazi

Kigeuzi hiki cha muda wa epoch kinatafsiri kati ya alama za muda za Unix na tarehe za UTC zinazosomeka na binadamu. Muda wa Unix — pia unaitwa muda wa POSIX au muda wa epoch — huhesabu idadi ya sekunde ambazo zimepita tangu epoch ya Unix, iliyofafanuliwa kama usiku wa manane UTC mnamo Januari 1, 1970 (1970-01-01T00:00:00Z). Uwakilishi huu wa nambari moja ni kiwango halisi cha kuhifadhi na kusambaza alama za muda katika hifadhidata, API, faili za kumbukumbu, tokeni za JWT, na karibu kila lugha ya kisasa ya programu. Kigeuzi hiki kinashughulikia pande zote mbili: kuingiza alama ya muda ya nambari kunatoa tarehe ya UTC inayolingana, siku ya wiki, na milisekunde sawa, wakati kuingiza tarehe na muda wa kalenda kunatoa thamani ya epoch katika sekunde na milisekunde.

Fomula
Muda wa Unix = sekunde zilizopita tangu 1970-01-01T00:00:00Z
epoch Hatua ya marejeleo: usiku wa manane UTC mnamo Januari 1, 1970 (alama ya muda ya Unix 0)
Muda wa Unix (s) Jumla ya sekunde kamili tangu epoch hadi tarehe na muda uliotajwa
Muda wa Unix (ms) Muda wa Unix katika sekunde ukizidishwa kwa 1,000 — hutumiwa na JavaScript Date, Java System.currentTimeMillis(), na API nyingi
Tarehe ya UTC Tarehe ya kalenda ya Gregorian na muda wa saa 24 unaolingana na alama ya muda iliyotolewa
siku ya wiki Jina la siku ya wiki lililotokana na tarehe ya UTC iliyobadilishwa
Mfano

Kubadilisha alama ya muda ya Unix 1,700,000,000 kuwa tarehe: kuanzia 1970-01-01 00:00:00 UTC, ongeza sekunde 1,700,000,000. Hii ni sawa na siku 19,675, saa 17, dakika 46, na sekunde 40. Tarehe ya UTC inayotokea ni 2023-11-14 saa 22:13:20 UTC, ambayo ni Jumanne. Thamani ya milisekunde ni 1,700,000,000,000. Kinyume chake, kuingiza Novemba 14, 2023 saa 22:13:20 UTC kunatoa thamani ya epoch ya 1,700,000,000 kamili.

Muhuri wa muda 0 hubadilika kuwa 1970-01-01 00:00:00 UTC (Alhamisi). Thamani sawa ya milisekunde ni 0.

Muhuri wa muda 1,704,000,000 hubadilika kuwa 2023-12-31 12:00:00 UTC (Jumapili). Kuingiza tarehe na saa hiyo katika hali ya Tarehe kwenda epoch hurejesha 1,704,000,000.

Dhana
  • Hesabu zote ziko katika UTC. Ubadilishaji wa muda wa ndani unahitaji kutumia kirekebisha saa kinachofaa baada ya ubadilishaji.
  • Sekunde mruko hazihesabiwi. Kama POSIX, kigeuzi hiki huchukulia kila siku kuwa na sekunde 86,400 kamili, jambo ambalo linalingana na tabia ya lugha nyingi za programu na mifumo ya uendeshaji.
  • Alama za muda hasi zinawakilisha tarehe kabla ya epoch (Januari 1, 1970). Kwa mfano, −86400 inalingana na Desemba 31, 1969.
  • Alama za muda za milisekunde zinapaswa kugawanywa kwa 1,000 kabla ya kuingizwa; kigeuzi hiki kinapokea sekunde kama ingizo na kuonyesha milisekunde inayolingana katika matokeo.
Vidokezo
  • Date.now() ya JavaScript na System.currentTimeMillis() ya Java hutoa milisekunde, si sekunde — gawanya kwa 1,000 kabla ya kuingiza thamani hapa, au tumia tokeo la milisekunde kwa ulinganifu.
  • Tatizo la Mwaka 2038 huathiri alama za muda za nambari kamili za biti 32, ambazo zitafurika mnamo Januari 19, 2038 saa 03:14:07 UTC. Mifumo mingi ya kisasa imehamia kwenye alama za muda za biti 64.
  • Unaporekebisha hitilafu za majibu ya API au faili za kumbukumbu, angalia alama za muda zinazoonekana kutofautiana kwa sekunde 3,600 au 7,200 — hii kawaida huashiria kuwa tofauti ya saa ilitumika (au ilisahaulika) mahali fulani kwenye mchakato.
  • Muda wa Epoch huongezeka mfululizo kila wakati (bila kuzingatia marekebisho ya sekunde ya ziada), jambo linaloufanya uwe bora kwa kupanga matukio, kukokotoa muda, na kutengeneza vitambulisho vya kipekee vinavyotegemea muda.
Vyanzo
  1. IEEE Std 1003.1 (POSIX) — ufafanuzi wa Sekunde Tangu Epoch
  2. Chimbuko la Unix epoch — nyaraka za The Unix Heritage Society na Bell Labs
  3. RFC 3339 — Tarehe na Saa kwenye Mtandao: Alama za Muda

Unix timestamps ni nini?

Unix timestamp ni idadi ya sekunde zilizopita tangu usiku wa manane UTC mnamo Januari 1, 1970 — Unix epoch. Nambari hii moja kamili ndiyo kiwango halisi cha kuwakilisha muda katika hifadhidata, API, faili za kumbukumbu, na lugha nyingi za programu. Kwa sababu haitegemei kanda ya saa na inaongezeka mfululizo, inarahisisha upangaji, ukokotoaji wa muda, na ulinganishaji wa muda. Date.now() ya JavaScript na API nyingi hurejesha milisekunde (sekunde × 1,000), kwa hivyo gawanya kwa 1,000 kabla ya kuingiza thamani ya milisekunde hapa. Mihuri ya muda hasi inawakilisha tarehe kabla ya 1970; kwa mfano, −86400 ni siku moja kamili kabla ya epoch.

Mifano ya matumizi ya muda wa epoch kwa watengenezaji

Watengenezaji hutumia Unix timestamps wanapohifadhi muda wa matukio katika hifadhidata, kuandaa tarehe katika JSON API, kutengeneza funguo za kache kulingana na muda, na kurekebisha makosa ya kumbukumbu. Safu za hifadhidata mara nyingi huhifadhi mihuri ya muda kama nambari kamili kwa ajili ya uorodheshaji bora na maswali ya masafa. Majibu ya API mara nyingi hurejesha sekunde au milisekunde za epoch ili kuepuka utata wa kanda ya saa. Wakati wa kurekebisha makosa, kubadilisha muhuri wa muda ghafi kutoka kwenye kumbukumbu au dai la JWT kuwa tarehe inayosomeka na binadamu hufunua haraka ikiwa thamani ni sahihi au imekosewa na kanda ya saa. Muda wa epoch pia hutumiwa kwa kuzuia kasi ya ufikiaji, muda wa mwisho wa kipindi, na kutengeneza vitambulisho vya kipekee vinavyoweza kupangwa katika mifumo iliyosambazwa.

Maswali Yanayoulizwa Mara kwa Mara kuhusu kigeuzi cha muda wa Epoch

Unix epoch ni nini?

Unix epoch ni hatua ya kurejelea ambapo muda wa Unix hupimwa: usiku wa manane UTC mnamo Januari 1, 1970 (1970-01-01T00:00:00Z). Alama ya muda ya 0 inalingana na wakati huo kamili.

Kwa nini alama yangu ya muda ya JavaScript ina tarakimu nyingi zaidi?

Date.now() ya JavaScript hutoa milisekunde tangu epoch, si sekunde. Gawanya kwa 1,000 ili kubadilisha kuwa muundo wa sekunde unaotumiwa na zana hii, au linganisha moja kwa moja na matokeo ya milisekunde.

Je, naweza kuingiza alama ya muda hasi?

Ndiyo. Thamani hasi huwakilisha tarehe kabla ya epoch. Kwa mfano, −86400 inalingana na 1969-12-31T00:00:00Z, siku moja kamili kabla ya epoch.

Je, hii inashughulikia sekunde mruko?

Hapana, na hii inalingana na kiwango cha POSIX. Muda wa POSIX unachukulia kila siku kuwa na sekunde 86,400 kamili. Sekunde mruko 27 zilizoongezwa tangu 1972 haziwakilishwi moja kwa moja, kumaanisha UTC na muda wa Unix zinaweza kutofautiana kwa hadi sekunde moja kwenye mipaka ya sekunde mruko.

Tatizo la Mwaka 2038 ni nini?

Mifumo inayohifadhi muda wa Unix kama namba nzima ya biti 32 itafikia kikomo mnamo Januari 19, 2038 saa 03:14:07 UTC, na kugeuka kuwa namba kubwa hasi na kutoa tarehe za mwaka 1901. Mifumo mingi ya kisasa sasa inatumia alama za muda za biti 64, ambazo hazitafikia kikomo kwa zaidi ya miaka bilioni 290.

Imeandikwa na Jan Křenek Mwanzilishi na msanidi mkuu
Imekaguliwa na Mapitio ya Metodolojia ya DigitSum Uhakiki wa fomula na QA
Ilisasishwa mwisho 10 Mac 2026

Tumia hii kama makadirio na uthibitishe maamuzi muhimu na mtaalamu aliyehitimu.

Data unazoingiza hubaki kwenye kivinjari isipokuwa kipengele cha baadaye kikuambie vinginevyo.