Tech Help

Unix Timestamp hadi tarehe: sekunde, milisekunde na UTC zimeelezwa

Badilisha Unix timestamp kuwa tarehe. Ona sekunde dhidi ya milisekunde, UTC dhidi ya saa ya eneo, ISO 8601, na jinsi ya kurudisha tarehe kuwa muda wa epoch.

Jibu la haraka

Unix timestamp inawakilisha muda kulingana na Unix epoch: 1970-01-01 00:00:00 UTC. Mara nyingi huhifadhiwa kama sekunde tangu epoch au milisekunde tangu epoch.

Ili kubadilisha sawa, kwanza unahitaji kujua kitengo. 1720000000 sekunde ni 2024-07-03 09:46:40 UTC. 1720000000000 milisekunde ni wakati uleule.

Timestamp inatambua papo. UTC, saa ya eneo, au eneo la IANA hubadilisha tu namna papo hilo linavyoonyeshwa.

Hii ni mwongozo wa ubadilishaji: timestamp hadi tarehe, tarehe hadi timestamp, UTC dhidi ya eneo, na ISO 8601. Ikiwa thamani inakuwa tarehe ya 1970 bila kutarajiwa, mara nyingi ni kutolingana kwa sekunde/milisekunde—ona Unix Timestamp sekunde dhidi ya milisekunde: kwa nini tarehe inaonyesha 1970.

Unix Timestamp ni nini?

Unix timestamp, Unix time na epoch time kwa kawaida humaanisha muda uliopita tangu 1970-01-01 00:00:00 UTC. Namba si mfuatano wa tarehe uliopangwa wenye lebo ya eneo la saa. Papo lilelile linaweza kuonyesha saa tofauti katika UTC, New York, Tokyo au Seoul. Unix timestamps si daima sekunde—milisekunde ni za kawaida katika matumizi.

Unix Epoch ni nini?

Unix epoch ni 1970-01-01 00:00:00 UTC. Timestamp 0 ni papo hilo. Timestamp chanya iko baada ya epoch. Baadhi ya mifumo inaruhusu timestamp hasi kwa muda kabla ya epoch, lakini lugha na upeo wa tarehe hutofautiana.

Je, timestamp yangu ni sekunde au milisekunde?

1720000000 ni sekunde; 1720000000000 ni milisekunde; ni papo lilelile. Dalili ya vitendo: takriban tarakimu 10 mara nyingi ni sekunde, takriban 13 mara nyingi milisekunde. Idadi ya tarakimu ni dalili tu. Tarehe za zamani au zijazo, vitengo vingine, au epoch maalum zinaweza kuonekana tofauti. Kigeuzi cha tarehe na saa inaweza kubadilisha kwa sekunde, milisekunde, au otomatiki (≤10 tarakimu kama sekunde, ≥13 kama milisekunde)—chagua kitengo unachokijua.

Kwa nini kitengo kisicho sahihi hutoa tarehe isiyo sahihi?

JavaScript Date inatarajia milisekunde. Kupitisha 1720000000 kama milisekunde hutoa 1970-01-20 21:46:40 UTC. Kuchukulia milisekunde kama sekunde, au kinyume, kunaangukia tarehe tofauti sana. Kwa njia ya kutatua 1970, ona Unix Timestamp sekunde dhidi ya milisekunde: kwa nini tarehe inaonyesha 1970.

new Date(1720000000);
// 1970-01-20T21:46:40.000Z

Jinsi ya kubadilisha Unix timestamp katika sekunde

Zidisha sekunde kwa 1000 upate milisekunde. JavaScript Date inategemea milisekunde, kwa hiyo tumia new Date(timestamp * 1000).

const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Jinsi ya kubadilisha timestamp ya milisekunde

Pitisha milisekunde kwa Date moja kwa moja. Usizidishe timestamp ya milisekunde kwa 1000 tena.

const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Kwa nini timestamp ileile inaonyesha saa tofauti?

Unix timestamp ni papo moja. Kuionyesha katika UTC, saa ya eneo, au eneo la IANA lililochaguliwa hubadilisha uso wa saa. Kwa 1720000000000, UTC ni 2024-07-03 09:46:40. America/New_York katika tarehe hiyo ni 2024-07-03 05:46:40 (EDT). Asia/Seoul ni 2024-07-03 18:46:40 (UTC+9). Thamani hizo za New York na Seoul zinatokana na Intl, si kauli ya tofauti isiyobadilika.

Je, Unix timestamp ina eneo la saa?

Hapana. Haihifadhi America/New_York wala Asia/Seoul. Timestamp inatambua papo. Eneo la saa linatumika unapopanga papo hilo kuwa tarehe na saa inayosomeka. Epoch inafafanuliwa kulingana na UTC; namba yenyewe si «uga wa eneo la saa la UTC».

Unix Timestamp dhidi ya ISO 8601

1720000000 na 2024-07-03T09:46:40Z zinaweza kuwakilisha papo lilelile. Unix ni thamani ya namba ya muda uliopita. ISO 8601 ni mfuatano wa tarehe-saa unaosomeka na unaweza kuishia na Z (UTC) au tofauti ya namba. Z inamaanisha UTC; wakati mwingine huitwa Zulu. Si muundo mmoja.

Unapataje Unix timestamp ya sasa?

Katika JavaScript, Date.now() ni milisekunde. Math.floor(Date.now() / 1000) ni sekunde. Usitie «sasa» thabiti katika makala; inasogea.

Date.now();
Math.floor(Date.now() / 1000);

Je, unaweza kurudisha tarehe kuwa Unix timestamp?

Ndiyo. Kutoka mfuatano wa ISO wa UTC ulio wazi, getTime() hurejesha milisekunde; gawanya kwa 1000 na panga chini kwa sekunde.

const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000

Tahadhari na miundo ya tarehe yenye utata

03/07/2024 inaweza kumaanisha 7 Machi au 3 Julai kulingana na eneo. Pendekeza tarehe na saa ya mtindo wa ISO pamoja na eneo la saa au tofauti. Kigeuzi cha tarehe na saa hukataa tarehe za namba zenye utata kama 01/02/2026 na huomba kiteua tarehe au thamani ya mtindo wa ISO.

Je, kuhusu saa za mchana?

Unix timestamp haihifadhi bendera ya DST. Onyesho la eneo linatumia sheria za eneo. America/New_York hutumia tofauti tofauti wakati wa baridi na joto, kwa hiyo «New York ni UTC-5» si kweli kila wakati.

Je, Unix timestamps zinajumuisha sekunde za ziada?

Muda wa kawaida wa POSIX/Unix hauhesabu sekunde za ziada kama sekunde za ziada za SI kwenye mizani inayoendelea. Majukwaa yanaweza kutofautiana. Kwa ubadilishaji wa kila siku unaweza kupuuza undani huu.

Makosa ya kawaida ya kubadilisha Unix timestamp

Machanganyiko haya hutoa tarehe isiyo sahihi au uso wa saa usio sahihi:

Sekunde zikichukuliwa kama milisekunde
Thamani ya sekunde ya kisasa basi inaangukia karibu na 1970 katika JavaScript Date.

Milisekunde zikichukuliwa kama sekunde
Tarehe huruka mbali katika siku zijazo.

Kuchukulia tarakimu 10 au 13 kama sheria
Idadi ya tarakimu ni dalili, si dhamana.

Kuchanganya UTC na saa ya eneo
Papo ni lilelile; saa inayoonyeshwa inaweza kutofautiana.

Kudhani eneo la saa lipo ndani ya namba
Majina ya IANA yanatumika wakati wa kuonyesha, hayahifadhiwi katika timestamp.

Tarehe zenye utata, kauli za DST, au ×1000 ya ziada
Tumia ingizo la mtindo wa ISO. Usizidishe timestamp ya milisekunde tena.

Mifano ya UTC iliyothibitishwa

Saa hizi za UTC zilihesabiwa, si kukisiwa:

Ingizo Kitengo UTC
0 sekunde 1970-01-01 00:00:00
1720000000 sekunde 2024-07-03 09:46:40
1720000000000 milisekunde 2024-07-03 09:46:40
1720000000 milisekunde 1970-01-20 21:46:40

Mwongozo rahisi wa kuamua ubadilishaji

Ikiwa chanzo kinataja kitengo, kitumie. Ikiwa sivyo, idadi ya tarakimu ni dalili—kisha hakikisha tarehe inaonekana inaeleweka. Badilisha sekunde kuwa milisekunde API inapohitaji ms. Chagua UTC, eneo, au eneo la IANA kwa onyesho. ISO 8601 inafaa kuhifadhi na kubadilishana.

  • Una Unix timestamp
  • Kitengo kimetajwa? Kitumie; la sivyo kagua ukubwa
  • Sekunde? ×1000 ikiwa API inahitaji milisekunde
  • Milisekunde? Tumia moja kwa moja katika API inayotegemea ms
  • Onyesha kama UTC, eneo, au eneo la IANA
  • Unahitaji mfuatano? ISO 8601 inaweza kufaa
Namba ni papo. Upangaji huchagua uso wa saa.
Timestamp ni papo, si muundo wa kuonyesha

Timestamp inatambua nukta katika muda. UTC, saa ya eneo, au eneo la saa huamua tu namna papo hilo linavyoonyeshwa kwa mtu.

Badilisha Unix timestamps katika kivinjari chako

NEXNARA Kigeuzi cha tarehe na saa hubadilisha sekunde na milisekunde za Unix, inaonyesha UTC, saa ya eneo, na ISO 8601, na hubadilisha kati ya maeneo ya saa ya IANA.

Hali ya Unix inasaidia sekunde, milisekunde, kitengo otomatiki, muda wa sasa, na tarehe-hadi-timestamp. Hali ya eneo la saa hutafuta majina ya IANA, hutumia eneo la kivinjari, na hutumia tofauti za Intl zinazojua DST. Hali ya muundo ina matokeo yanayosomeka kulingana na eneo, onyesho la saa 12/24, na ulinzi wa tarehe yenye utata. Tofauti ya tarehe ni hali tofauti.

Ubadilishaji hutumia API za Date na Intl za kivinjari. Thamani nje ya kile Date inaweza kuwakilisha hukataliwa. Kitengo otomatiki hakikisi thamani za tarakimu 11–12; chagua sekunde au milisekunde.

Ubadilishaji wa tarehe na timestamp wenyewe hufanyika katika kivinjari chako. Ingizo hazitumwi kwa seva ya NEXNARA ili kubadilisha. Matangazo na vipengele vingine vya tovuti bado vinatumia mtandao.

Bandika timestamp katika Kigeuzi cha tarehe na saa ukalinganishe UTC, saa ya eneo, na ISO 8601 kabla ya kuchagua kitengo.

FAQ

Nabadilishaje Unix timestamp kuwa tarehe?

Jua kitengo. Kwa sekunde katika JavaScript, tumia new Date(n * 1000). Kwa milisekunde, tumia new Date(n). Kisha panga kama UTC, eneo, au eneo la saa.

Je, Unix timestamp ni sekunde au milisekunde?

Yoyote. Takriban tarakimu 10 mara nyingi ni sekunde na takriban 13 mara nyingi milisekunde, lakini ni dalili, si kanuni.

Kwa nini timestamp yangu inaonyesha 1970?

Mara nyingi thamani ya sekunde ilisomwa kama milisekunde. Ona Unix Timestamp sekunde dhidi ya milisekunde: kwa nini tarehe inaonyesha 1970.

Je, Unix timestamp daima ni UTC?

Epoch inafafanuliwa kulingana na UTC, na namba inatambua papo. Eneo la saa la kuonyesha ni tofauti. Si «uga wa eneo la saa la UTC» uliohifadhiwa.

Je, Unix timestamp ina eneo la saa?

Hapana. Haibebi kitambulisho cha IANA. Eneo la saa linatumika unapopanga papo.

Nabadilishaje tarehe kuwa Unix timestamp?

Kutoka mfuatano wa ISO wa UTC, date.getTime() ni milisekunde; Math.floor(date.getTime() / 1000) ni sekunde.