Tech Help
Iz Unix Timestamp v datum: sekunde, milisekunde in UTC pojasnjeni
Pretvorite Unix timestamp v datum. Primerjajte sekunde in milisekunde, UTC in krajevni čas, ISO 8601 ter pretvorbo datuma nazaj v epoch čas.
Unix timestamp meri čas glede na Unix epoch: 1970-01-01 00:00:00 UTC. Običajno je shranjen kot sekunde od epoch ali kot milisekunde od epoch.
Za pravilno pretvorbo morate najprej poznati enoto. 1720000000 sekund je 2024-07-03 09:46:40 UTC. 1720000000000 milisekund je isti trenutek.
Timestamp označi trenutek. UTC, krajevni čas ali IANA območje spremenijo le, kako se ta trenutek prikaže.
To je vodič za pretvorbo: timestamp v datum, datum v timestamp, UTC proti krajevnemu času in ISO 8601. Če vrednost nepričakovano postane datum iz 1970, gre običajno za neskladje sekund in milisekund—glejte Unix Timestamp v sekundah vs milisekundah: zakaj datum kaže 1970.
Kaj je Unix Timestamp?
Unix timestamp, Unix time in epoch time običajno pomenijo pretečeni čas od 1970-01-01 00:00:00 UTC. Število ni oblikovan datumski niz z oznako časovnega pasu. Isti trenutek se lahko prikaže z različnimi urami v UTC, New Yorku, Tokiu ali Seulu. Unix timestampi niso vedno sekunde—milisekunde so v praksi pogoste.
Kaj je Unix Epoch?
Unix epoch je 1970-01-01 00:00:00 UTC. Timestamp 0 je ta trenutek. Pozitivni timestamp je po epoch. Nekateri sistemi dovolijo negativni timestamp za čas pred epoch, vendar se podpora jezikov in razponov datumov razlikuje.
Je moj timestamp v sekundah ali milisekundah?
1720000000 so sekunde; 1720000000000 so milisekunde; gre za isti trenutek. Praktičen namig: približno 10 števk pogosto pomeni sekunde, približno 13 pogosto milisekunde. Število števk je le hevristika. Pretekli ali prihodnji datumi, druge enote ali lastni epoch so lahko videti drugače. Pretvornik datuma in časa pretvarja s sekundami, milisekundami ali auto (≤10 števk kot sekunde, ≥13 kot milisekunde)—enoto izberite, ko jo poznate.
Zakaj napačna enota da napačen datum?
JavaScript Date pričakuje milisekunde. Če 1720000000 podate kot milisekunde, dobite 1970-01-20 21:46:40 UTC. Obdelava milisekund kot sekund ali obratno pade na povsem drug datum. Za pot odpravljanja težav okoli 1970 glejte Unix Timestamp v sekundah vs milisekundah: zakaj datum kaže 1970.
new Date(1720000000);
// 1970-01-20T21:46:40.000Z
Kako pretvoriti Unix timestamp v sekundah
Sekunde pomnožite s 1000, da dobite milisekunde. JavaScript Date temelji na milisekundah, zato uporabite new Date(timestamp * 1000).
const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z
Kako pretvoriti timestamp v milisekundah
Milisekunde podajte neposredno v Date. Timestampa v milisekundah ne množite znova s 1000.
const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z
Zakaj isti timestamp pokaže drugačen čas?
Unix timestamp je en trenutek. Prikaz v UTC, krajevnem času ali izbranem IANA območju spremeni uro. Za 1720000000000 je UTC 2024-07-03 09:46:40. America/New_York tistega dne je 2024-07-03 05:46:40 (EDT). Asia/Seoul je 2024-07-03 18:46:40 (UTC+9). Vrednosti za New York in Seoul prihajajo iz Intl, ne iz gesla o stalnem zamiku.
Ali Unix timestamp vsebuje časovni pas?
Ne. Ne shrani niti America/New_York niti Asia/Seoul. Timestamp identificira trenutek. Časovni pas se uporabi, ko trenutek oblikujete kot berljiv datum in čas. Epoch je definiran glede na UTC; število samo ni »polje UTC časovnega pasu«.
Unix Timestamp proti ISO 8601
1720000000 in 2024-07-03T09:46:40Z lahko predstavljata isti trenutek. Unix je številska vrednost pretečenega časa. ISO 8601 je berljiv niz datuma in časa in se lahko konča z Z (UTC) ali številskim zamikom. Z pomeni UTC; včasih se imenuje Zulu. To nista ista formata.
Kako dobite trenutni Unix timestamp?
V JavaScriptu je Date.now() milisekunde. Math.floor(Date.now() / 1000) so sekunde. V članku ne vkodirajte »zdaj«; to se premika.
Date.now();
Math.floor(Date.now() / 1000);
Ali lahko datum pretvorite nazaj v Unix timestamp?
Da. Iz izrecnega UTC ISO niza getTime() vrne milisekunde; delite s 1000 in zaokrožite navzdol za sekunde.
const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000
Pazite na dvoumne zapise datumov
03/07/2024 lahko pomeni 7. marec ali 3. julij, odvisno od locale. Raje uporabite datum in čas v slogu ISO s časovnim pasom ali zamikom. Pretvornik datuma in časa zavrne dvoumne številske datume, kot je 01/02/2026, in zahteva izbirnik datuma ali vrednost v slogu ISO.
Kaj pa poletni čas?
Unix timestamp ne shrani zastavice poletnega časa. Krajevni prikaz uporabi pravila območja. America/New_York pozimi in poleti uporablja različne zamike, zato »New York je UTC-5« ni vedno res.
Ali Unix timestampi vključujejo prestopne sekunde?
Tipičen POSIX/Unix čas prestopnih sekund ne šteje kot dodatnih SI sekund na neprekinjeni skali. Platforme se lahko razlikujejo. Pri vsakodnevni pretvorbi to podrobnost lahko prezrete.
Pogoste napake pri pretvorbi Unix timestampa
Te zamenjave dajo napačen datum ali napačno uro:
Sekunde obravnavane kot milisekunde
Sodobna vrednost v sekundah tedaj pade blizu 1970 v JavaScript Date.
Milisekunde obravnavane kot sekunde
Datum skoči daleč v prihodnost.
10 ali 13 števk kot zakon
Število števk je namig, ne jamstvo.
Zamenjava UTC s krajevnim časom
Trenutek je isti; prikazana ura se lahko razlikuje.
Domneva, da je časovni pas v številu
IANA imena se uporabijo ob prikazu, niso shranjena v timestampu.
Dvoumni datumi, gesla o DST ali dodatno ×1000
Uporabite vnos v slogu ISO. Timestampa v milisekundah ne množite znova.
Preverjeni UTC primeri
Ti UTC časi so izračunani, niso ugibani:
| Vhod | Enota | 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 |
Preprost vodnik za odločitev o pretvorbi
Če vir poimenuje enoto, jo uporabite. Sicer je število števk namig—nato preverite, ali datum izgleda verjetno. Sekunde pretvorite v milisekunde, ko API potrebuje ms. Za prikaz izberite UTC, krajevni čas ali IANA območje. ISO 8601 je uporaben za shranjevanje in izmenjavo.
- Imate Unix timestamp pred seboj
- Enota navedena? Uporabite jo; sicer preverite velikost
- Sekunde? ×1000, če API potrebuje milisekunde
- Milisekunde? Uporabite neposredno v API-ju na osnovi ms
- Prikažite kot UTC, krajevni čas ali IANA območje
- Potrebujete niz? ISO 8601 lahko ustreza
Timestamp identificira točko v času. UTC, krajevni čas ali časovni pas le odločijo, kako se ta trenutek pokaže osebi.
Pretvorite Unix timestamp v brskalniku
NEXNARA Pretvornik datuma in časa pretvarja Unix sekunde in milisekunde, prikaže UTC, krajevni čas in ISO 8601 ter pretvarja med IANA časovnimi pasovi.
Unix način podpira sekunde, milisekunde, auto enoto, trenutni čas in datum-v-timestamp. Način časovnega pasu išče IANA imena, uporabi pas brskalnika in uporabi na DST občutljive zamike Intl. Način formata ima izhod, berljiv po locale, prikaz 12/24 ur in varovalo pred dvoumnim datumom. Razlika datumov je ločen način.
Pretvorba uporablja API-ja Date in Intl v brskalniku. Vrednosti zunaj tistega, kar Date lahko predstavi, se zavrnejo. Auto enota ne ugiba vrednosti z 11–12 števkami; izberite sekunde ali milisekunde.
Sama pretvorba datuma in timestampa poteka v vašem brskalniku. Vhodi se za pretvorbo ne pošiljajo na strežnik NEXNARA. Oglasi in druge funkcije spletnega mesta še vedno uporabljajo omrežje.
Prilepite timestamp v Pretvornik datuma in časa in primerjajte UTC, krajevni čas in ISO 8601, preden izberete enoto.
FAQ
Kako pretvorim Unix timestamp v datum?
Poznajte enoto. Za sekunde v JavaScriptu uporabite new Date(n * 1000). Za milisekunde new Date(n). Nato oblikujte kot UTC, krajevni čas ali območje.
Je Unix timestamp v sekundah ali milisekundah?
Lahko oboje. Približno 10 števk pogosto pomeni sekunde, približno 13 milisekunde, a to je hevristika, ne pravilo.
Zakaj moj timestamp kaže 1970?
Običajno je bila vrednost v sekundah prebrana kot milisekunde. Glejte Unix Timestamp v sekundah vs milisekundah: zakaj datum kaže 1970.
Je Unix timestamp vedno UTC?
Epoch je definiran glede na UTC, število pa identificira trenutek. Časovni pas prikaza je ločen. To ni shranjeno »polje UTC časovnega pasu«.
Ali Unix timestamp vsebuje časovni pas?
Ne. Ne nosi IANA identifikatorja. Časovni pas se uporabi, ko oblikujete trenutek.
Kako pretvorim datum v Unix timestamp?
Iz UTC ISO niza je date.getTime() milisekunde; Math.floor(date.getTime() / 1000) so sekunde.