Tech Help
Unix Timestamp í sekúndum vs millisekúndum: af hverju dagsetningin sýnir 1970
Ef Unix timestamp verður dagsetning nálægt 1970 eru sekúndur oft lesnar sem millisekúndur. Sjáðu hvernig á að greina einingarnar.
Ef Unix timestamp gefur dagsetningu nálægt 1970 er gildið oft túlkað í rangri einingu.
Unix timestamps nota yfirleitt sekúndur, en JavaScript Date yfirleitt millisekúndur.
Nútíma 10 stafa timestamp eru oft sekúndur, 13 stafa oft millisekúndur. Ef einingarnar passa ekki gæti þurft að margfalda eða deila með 1.000.
Þú breyttir timestamp og lendir í janúar 1970. Klukkan er sjaldan bilað. Talan var lesin sem millisekúndur þó hún væri geymd í sekúndum—eða öfugt.
Hvað er Unix timestamp?
Unix timestamp mælir tíma frá Unix epoch: 1970-01-01 00:00:00 UTC. Það notar yfirleitt heilar sekúndur. Sama augnablik má einnig geyma sem millisekúndur (sekúndur × 1.000). Talan sjálf merkir ekki eininguna.
Sekúndur vs millisekúndur: munurinn ×1.000
Ein sekúnda eru 1.000 millisekúndur. Berðu 1720000000 saman við 1720000000000. Ef hið fyrra eru sekúndur og hið síðara millisekúndur er það sama augnablik. Lestu hið fyrra sem millisekúndur og dagsetningin hoppar að 1970.
Þessar UTC niðurstöður voru reiknaðar út frá tölunum að ofan, ekki giskað.
| Gildi | Líkleg eining | Túlkun (UTC) |
|---|---|---|
| 1720000000 | Sekúndur | Nútíma dagsetning sem sekúndur: 2024-07-03 09:46:40 UTC |
| 1720000000000 | Millisekúndur | Sama augnablik sem millisekúndur: 2024-07-03 09:46:40 UTC |
| 1720000000 sem millisekúndur | Röng eining | Dagsetning nálægt 1970: 1970-01-20 21:46:40 UTC |
Af hverju sýnir timestampið mitt 1970?
Ef sekúndugildi er meðhöndlað sem millisekúndur er talan 1.000 sinnum of lítil. JavaScript telur þá aðeins stutt bil eftir Unix epoch, svo dagsetningin situr í 1970:
const seconds = 1720000000;
new Date(seconds);
// 1970-01-20 21:46:40 UTC
new Date(seconds * 1000);
// 2024-07-03 09:46:40 UTC
Sú 1970 dagsetning er epoch plús um tvær vikur. Margfaldaðu sekúndur með 1.000 áður en þú sendir þær í Date.
- SEKÚNDUR
- 1720000000
- MILLISEKÚNDUR
- 1720000000000
- Sekúndugildi
- Ranglega meðhöndlað sem millisekúndur
- Dagsetning nálægt 1970
Ef niðurstaðan er nálægt 1970 skaltu athuga einingu timestamp áður en þú rannsakar tímabeltið.
Eru 10 tölustafir sekúndur og 13 millisekúndur?
Fyrir nútíma dagsetningar eru 10 tölustafir oft sekúndur og 13 oft millisekúndur. Þetta er fljótleg vísbending, ekki gildisregla. Fjöldi tölustafa breytist með tímabili og sum API geyma míkró- eða nanósekúndur. Staðfestu eininguna með skjölun eða dagsetningu sem hefur merkingu.
Af hverju gerist þetta svo oft í JavaScript
Í JavaScript er tölulegt Date millisekúndur frá epoch. Mörg bakendi, gagnagrunnar og Unix tól geyma enn sekúndur. Að senda sekúndur beint í Date er því algeng villa:
const unixSeconds = 1720000000;
const wrong = new Date(unixSeconds);
const correct = new Date(unixSeconds * 1000);
wrong er nálægt 1970 (1970-01-20 21:46:40 UTC). correct er nútíma augnablikið (2024-07-03 09:46:40 UTC).
Önnur kerfi nota aðrar einingar
Önnur tungumál, API og gagnagrunnar geta notað sekúndur eða millisekúndur. Sum geyma míkró- eða nanósekúndur. Ekki gera ráð fyrir að tungumál noti alltaf eina einingu—skoðaðu skjölunina. Ef talan er í JSON gerir Sniða og bera saman JSON reitinn læsilegan; eininguna segir hann samt ekki.
Hvernig veit ég hvaða einingu timestampið mitt notar?
Farðu í gegnum þessar athuganir í röð. Fjöldi tölustafa einn og sér dugar ekki.
- Skoðaðu skjölun API eða gagnagrunns.
- Skoðaðu áætlaðan fjölda tölustafa.
- Berðu gildið saman við trúverðugt nútíma timestamp.
- Prófaðu gildið sem sekúndur og sem millisekúndur.
- Athugaðu hvort dagsetningin sem kemur út hafi merkingu.
Ef ein túlkun lendir í 1970 og hin á dagsetningu sem þú þekkir er einingarmisræmið orsökin.
Algengar Unix timestamp villur
- Sekúndur túlkaðar sem millisekúndur. Dagsetningin hrynur að 1970, eins og í dæminu að ofan.
- Millisekúndur túlkaðar sem sekúndur. Dagsetningin hoppar langt inn í framtíðina, eða umbreytingin mistekst.
- Margföldun með 1.000 tvisvar. Gildi sem þegar var í millisekúndum verður risastórt og dagsetningin hoppar aldir fram.
- Deiling með 1.000 tvisvar. Sekúndugildi minnkar aftur, aftur nálægt 1970.
- Að kenna tímabeltinu um. Belti getur fært klukkustundir eða dagatal. Það færir ekki nútíma timestamp til 1970.
- Að meðhöndla sniðinn dagsetningarstreng sem Unix timestamp. Gildi eins og 2024-07-03T09:46:40Z er ekki epoch tala. Þáttaðu það sem dagsetningu, ekki sem sekúndur.
Veldur tímabelti 1970 vandamálinu?
Yfirleitt ekki. Tímabelti getur breytt sýndri klukku og, nálægt miðnætti, dagatalinu. Það gerir nútíma Unix timestamp ekki að 1970. Ef niðurstaðan er 1970 skaltu fyrst athuga sekúndur á móti millisekúndum.
Umbreyttu og athugaðu Unix timestamp
NEXNARA Dagsetningar- og tímabreyting getur umbreytt Unix timestamp í vafranum.
Límdu Unix sekúndur eða millisekúndur, notaðu núverandi timestamp, sjáðu UTC og staðartíma, umbreyttu tímabeltum og sniðið dagsetningu. Sjálfvirk greining meðhöndlar oft 10 tölustafi sem sekúndur og 13 sem millisekúndur; þú getur samt valið einingu.
Umbreytingin sjálf gerist í vafranum. Þetta tól sendir hvorki dagsetningar né timestamps á NEXNARA þjón. Auglýsingar og aðrir vefeiginleikar nota enn netið; það er aðskilið frá umbreytingunni.
Þarftu að athuga Unix timestamp? Opnaðu Dagsetningar- og tímabreyting og berðu sekúndur saman við millisekúndur.
FAQ
Af hverju sýnir Unix timestampið mitt 1970?
Oft eru það sekúndur sem voru lesnar sem millisekúndur. JavaScript vinnur þá mun minni tölu, svo dagsetningin fellur rétt eftir 1970-01-01 00:00:00 UTC. Margfaldaðu sekúndur með 1.000 og umbreyttu aftur.
Eru Unix timestamps sekúndur eða millisekúndur?
Yfirleitt sekúndur. Mörg vef-API og JavaScript Date nota millisekúndur. Athugaðu alltaf hvað það kerfi skjalsetur. Sum kerfi nota míkró- eða nanósekúndur.
Hvernig umbreyti ég sekúndum í millisekúndur?
Margfaldaðu með 1.000. 1720000000 sekúndur eru 1720000000000 millisekúndur. Hina leiðina skaltu deila með 1.000.
Af hverju notar JavaScript Date millisekúndur?
Tölulegt Date timestamp í JavaScript er skilgreint sem millisekúndur frá Unix epoch. Þess vegna er new Date(unixSeconds) rangt þegar unixSeconds eru Unix sekúndur.
Er 10 stafa timestamp alltaf sekúndur?
Nei. Fyrir nútíma dagsetningar er það oft svo, og 13 stafir eru oft millisekúndur. Fjöldi tölustafa er vísbending, ekki regla. Staðfestu með skjölun eða dagsetningu sem hefur merkingu.
Inniheldur Unix timestamp tímabelti?
Nei. Unix timestamp er augnablik talið frá 1970-01-01 00:00:00 UTC. Tímabelti hafa áhrif á birtingu, ekki töluna sjálfa.