Tech Help
Unix Timestamp u sekundama vs milisekundama: zašto datum pokazuje 1970
Ako Unix timestamp postane datum blizu 1970, često su sekunde pročitane kao milisekunde. Kako raspoznati jedinice.
Ako Unix timestamp da datum blizu 1970, vrijednost se često tumači u pogrešnoj jedinici.
Unix timestampi obično koriste sekunde, a JavaScript Date obično milisekunde.
Moderan zapis od 10 cifara često su sekunde, od 13 često milisekunde. Ako se jedinice ne slažu, možda treba pomnožiti ili podijeliti sa 1000.
Pretvorili ste timestamp i završili u januaru 1970. Sat skoro nikad nije pokvaren. Broj je pročitan kao milisekunde dok je bio spremljen u sekundama—ili obrnuto.
Šta je Unix timestamp?
Unix timestamp mjeri vrijeme od Unix epoch: 1970-01-01 00:00:00 UTC. Obično koristi cijele sekunde. Isti trenutak može se spremiti i u milisekundama (sekunde × 1000). Sam broj ne označava jedinicu.
Sekunde vs milisekunde: razlika ×1000
Jedna sekunda je 1000 milisekundi. Uporedite 1720000000 sa 1720000000000. Ako je prvo sekunde, a drugo milisekunde, to je isti trenutak. Pročitajte prvo kao milisekunde i datum skače prema 1970.
Ovi UTC rezultati izračunati su iz brojeva iznad, nisu nagađanje.
| Vrijednost | Vjerovatna jedinica | Tumačenje (UTC) |
|---|---|---|
| 1720000000 | Sekunde | Moderan datum kao sekunde: 2024-07-03 09:46:40 UTC |
| 1720000000000 | Milisekunde | Isti trenutak kao milisekunde: 2024-07-03 09:46:40 UTC |
| 1720000000 kao milisekunde | Pogrešna jedinica | Datum blizu 1970: 1970-01-20 21:46:40 UTC |
Zašto moj timestamp pokazuje 1970?
Ako se vrijednost u sekundama tretira kao milisekunde, broj je 1000 puta premali. JavaScript tada broji samo kratak raspon poslije Unix epoch, pa datum ostaje u 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
Taj datum iz 1970 je epoch plus otprilike dvije sedmice. Pomnožite sekunde sa 1000 prije nego što ih date Date.
- SEKUNDE
- 1720000000
- MILISEKUNDE
- 1720000000000
- Vrijednost u sekundama
- Pogrešno tretirana kao milisekunde
- Datum blizu 1970
Ako je rezultat blizu 1970, provjerite jedinicu timestampa prije nego što istražujete vremensku zonu.
Jesu li 10 cifara sekunde, a 13 milisekunde?
Za današnje datume 10 cifara često su sekunde, a 13 često milisekunde. To je brza naznaka, ne pravilo provjere. Broj cifara mijenja se s vremenskim opsegom, a neki API-ji spremaju mikrosekunde ili nanosekunde. Potvrdite jedinicu dokumentacijom ili datumom koji ima smisla.
Zašto se ovo tako često dešava u JavaScriptu
U JavaScriptu numerički Date su milisekunde od epoch. Mnogi bekendovi, baze i Unix alati i dalje spremaju sekunde. Proslijediti sekunde direktno u Date zato je česta greška:
const unixSeconds = 1720000000;
const wrong = new Date(unixSeconds);
const correct = new Date(unixSeconds * 1000);
wrong je blizu 1970 (1970-01-20 21:46:40 UTC). correct je taj moderni trenutak (2024-07-03 09:46:40 UTC).
Drugi sistemi koriste druge jedinice
Drugi jezici, API-ji i baze mogu koristiti sekunde ili milisekunde. Neki spremaju mikrosekunde ili nanosekunde. Ne pretpostavljajte da jezik uvijek koristi jednu jedinicu—pogledajte dokumentaciju. Ako je broj u JSON-u, Formatiranje i poređenje JSON-a polje čini čitljivim; jedinicu ipak neće reći.
Kako da znam koju jedinicu koristi moj timestamp?
Prođite ove provjere redom. Sam broj cifara nije dovoljan.
- Provjerite dokumentaciju API-ja ili baze podataka.
- Pogledajte približan broj cifara.
- Uporedite vrijednost s uvjerljivim modernim timestampom.
- Isprobajte vrijednost kao sekunde i kao milisekunde.
- Provjerite ima li dobiveni datum smisla.
Ako jedno tumačenje padne u 1970, a drugo na datum koji prepoznajete, uzrok je nesklad jedinica.
Česte greške sa Unix timestampom
- Sekunde protumačene kao milisekunde. Datum se urušava prema 1970, kao u primjeru iznad.
- Milisekunde protumačene kao sekunde. Datum skače daleko u budućnost, ili pretvaranje ne uspije.
- Množenje sa 1000 dva puta. Vrijednost koja je već bila u milisekundama postaje ogromna i datum skače stoljećima unaprijed.
- Dijeljenje sa 1000 dva puta. Vrijednost u sekundama opet se skuplja, opet blizu 1970.
- Kriviti vremensku zonu. Zona može pomjeriti sate ili kalendarski dan. Ne prebacuje moderni timestamp u 1970.
- Tretirati formatirani datum kao Unix timestamp. Vrijednost kao 2024-07-03T09:46:40Z nije broj epoch. Parsirajte je kao datum, ne kao sekunde.
Uzrokuje li vremenska zona problem 1970?
Obično ne. Zona može promijeniti prikazani sat i, blizu ponoći, kalendarski datum. Ne pretvara moderni Unix timestamp u 1970. Ako je rezultat 1970, prvo provjerite sekunde naspram milisekundi.
Pretvorite i provjerite Unix timestamp
NEXNARA Pretvarač datuma i vremena može pretvoriti Unix timestamp u pregledniku.
Zalijepite Unix sekunde ili milisekunde, koristite trenutni timestamp, vidite UTC i lokalno vrijeme, pretvorite zone i formatirajte datum. Automatsko prepoznavanje često tretira 10 cifara kao sekunde, a 13 kao milisekunde; jedinicu i dalje možete odabrati.
Samo pretvaranje se dešava u pregledniku. Ovaj alat ne šalje datume ni timestampove na NEXNARA server. Reklame i druge funkcije sajta i dalje koriste mrežu; to je odvojeno od pretvaranja.
Trebate provjeriti Unix timestamp? Otvorite Pretvarač datuma i vremena i uporedite sekunde s milisekundama.
FAQ
Zašto moj Unix timestamp pokazuje 1970?
Često su to sekunde pročitane kao milisekunde. JavaScript tada obrađuje mnogo manji broj, pa datum padne odmah poslije 1970-01-01 00:00:00 UTC. Pomnožite sekunde sa 1000 i pretvorite ponovo.
Jesu li Unix timestampi sekunde ili milisekunde?
Obično sekunde. Mnogi web API-ji i JavaScript Date koriste milisekunde. Uvijek provjerite šta taj sistem dokumentuje. Neki sistemi koriste mikrosekunde ili nanosekunde.
Kako pretvoriti sekunde u milisekunde?
Pomnožite sa 1000. 1720000000 sekundi je 1720000000000 milisekundi. U drugom smjeru podijelite sa 1000.
Zašto JavaScript Date koristi milisekunde?
Numerički timestamp Date u JavaScriptu definisan je kao milisekunde od Unix epoch. Zato je new Date(unixSeconds) pogrešno kada je unixSeconds Unix sekunde.
Je li timestamp od 10 cifara uvijek sekunde?
Ne. Za današnje datume često jesu, a 13 cifara često su milisekunde. Broj cifara je naznaka, ne pravilo. Potvrdite dokumentacijom ili datumom koji ima smisla.
Sadrži li Unix timestamp vremensku zonu?
Ne. Unix timestamp je trenutak brojan od 1970-01-01 00:00:00 UTC. Zone utiču na prikaz, ne na sam broj.