Tech Help
Fra Unix Timestamp til dato: sekunder, millisekunder og UTC forklaret
Konvertér et Unix timestamp til en dato. Se sekunder versus millisekunder, UTC versus lokal tid, ISO 8601 og hvordan du går tilbage fra en dato til epoch-tid.
Et Unix timestamp angiver tid i forhold til Unix epoch: 1970-01-01 00:00:00 UTC. Det gemmes typisk som sekunder siden epoch eller som millisekunder siden epoch.
For at konvertere korrekt skal du først kende enheden. 1720000000 sekunder er 2024-07-03 09:46:40 UTC. 1720000000000 millisekunder er det samme øjeblik.
Timestampet identificerer et øjeblik. UTC, lokal tid eller en IANA-zone ændrer kun, hvordan det øjeblik vises.
Dette er en konverteringsguide: timestamp til dato, dato til timestamp, UTC versus lokal, og ISO 8601. Hvis en værdi pludselig bliver en 1970-dato, er det som regel et mismatch mellem sekunder og millisekunder—se Unix Timestamp i sekunder vs millisekunder: hvorfor datoen viser 1970.
Hvad er et Unix Timestamp?
Unix timestamp, Unix time og epoch time betyder typisk forløbet tid siden 1970-01-01 00:00:00 UTC. Tallet er ikke en formateret datostreng med en tidszoneetiket. Det samme øjeblik kan vises med forskellige klokkeslæt i UTC, New York, Tokyo eller Seoul. Unix timestamps er ikke altid sekunder—millisekunder er almindelige i praksis.
Hvad er Unix Epoch?
Unix epoch er 1970-01-01 00:00:00 UTC. Timestamp 0 er det øjeblik. Et positivt timestamp ligger efter epoch. Nogle systemer tillader et negativt timestamp for tid før epoch, men sprog- og datointervalstøtte varierer.
Er mit timestamp i sekunder eller millisekunder?
1720000000 er sekunder; 1720000000000 er millisekunder; de er det samme øjeblik. Et praktisk fingerpeg: cirka 10 cifre betyder ofte sekunder, cirka 13 ofte millisekunder. Cifferantallet er kun en tommelfingerregel. Fortidige eller fremtidige datoer, andre enheder eller en brugerdefineret epoch kan se anderledes ud. Dato- og tidskonverter kan konvertere med sekunder, millisekunder eller auto (≤10 cifre som sekunder, ≥13 som millisekunder)—vælg enheden, når du kender den.
Hvorfor giver den forkerte enhed den forkerte dato?
JavaScript Date forventer millisekunder. Sender du 1720000000, som om det var millisekunder, får du 1970-01-20 21:46:40 UTC. Behandler du millisekunder som sekunder, eller omvendt, lander du på en helt anden dato. Til 1970-fejlsøgningsstien, se Unix Timestamp i sekunder vs millisekunder: hvorfor datoen viser 1970.
new Date(1720000000);
// 1970-01-20T21:46:40.000Z
Sådan konverterer du et Unix timestamp i sekunder
Gang sekunder med 1000 for at få millisekunder. JavaScript Date er millisekundbaseret, så brug new Date(timestamp * 1000).
const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z
Sådan konverterer du et millisekund-timestamp
Giv millisekunderne direkte til Date. Gang ikke et millisekund-timestamp med 1000 endnu en gang.
const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z
Hvorfor viser det samme timestamp et andet klokkeslæt?
Et Unix timestamp er ét øjeblik. Visning i UTC, lokal tid eller en valgt IANA-zone ændrer uret. For 1720000000000 er UTC 2024-07-03 09:46:40. America/New_York den dag er 2024-07-03 05:46:40 (EDT). Asia/Seoul er 2024-07-03 18:46:40 (UTC+9). New York- og Seoul-værdierne kommer fra Intl, ikke fra et slogan om fast forskydning.
Indeholder et Unix timestamp en tidszone?
Nej. Det gemmer hverken America/New_York eller Asia/Seoul. Timestampet identificerer et øjeblik. En tidszone anvendes, når du formatterer øjeblikket som læsbar dato og tid. Epoch er defineret i forhold til UTC; tallet selv er ikke ”et UTC-tidszonefelt”.
Unix Timestamp versus ISO 8601
1720000000 og 2024-07-03T09:46:40Z kan repræsentere det samme øjeblik. Unix er en numerisk værdi for forløbet tid. ISO 8601 er en læsbar dato-tidsstreng og kan slutte med Z (UTC) eller en numerisk forskydning. Z betyder UTC; det kaldes nogle gange Zulu. Det er ikke samme format.
Hvordan får man det aktuelle Unix timestamp?
I JavaScript er Date.now() millisekunder. Math.floor(Date.now() / 1000) er sekunder. Undlad at hardcode ”nu” i en artikel; det flytter sig.
Date.now();
Math.floor(Date.now() / 1000);
Kan man konvertere en dato tilbage til Unix timestamp?
Ja. Fra en eksplicit UTC ISO-streng returnerer getTime() millisekunder; divider med 1000 og afrund nedad for sekunder.
const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000
Pas på tvetydige datoformater
03/07/2024 kan betyde 7. marts eller 3. juli afhængigt af region. Foretræk dato og tid i ISO-stil med tidszone eller forskydning. Dato- og tidskonverter afviser tvetydige numeriske datoer som 01/02/2026 og beder om en datovælger eller en værdi i ISO-stil.
Hvad med sommertid?
Et Unix timestamp gemmer ikke et sommertidssignal. Lokal visning anvender zonens regler. America/New_York bruger forskellige forskydninger om vinteren og sommeren, så ”New York er UTC-5” er ikke altid sandt.
Tæller Unix timestamps skudsekunder med?
Typisk POSIX/Unix-tid tæller ikke skudsekunder som ekstra SI-sekunder på en kontinuerlig skala. Platforme kan afvige. Ved dagligdags konvertering kan du ignorere detaljen.
Almindelige fejl ved Unix timestamp-konvertering
De her forvekslinger giver den forkerte dato eller det forkerte ur:
Sekunder behandlet som millisekunder
En moderne sekundværdi lander så tæt på 1970 i JavaScript Date.
Millisekunder behandlet som sekunder
Datoen hopper langt ud i fremtiden.
At behandle 10 eller 13 cifre som en lov
Cifferantallet er et fingerpeg, ikke en garanti.
At forveksle UTC med lokal tid
Øjeblikket er det samme; det viste ur kan være anderledes.
At antage, at tidszonen sidder i tallet
IANA-navne anvendes ved visning, de gemmes ikke i timestampet.
Tvetydige datoer, sommertidsslogans eller et ekstra ×1000
Brug input i ISO-stil. Gang ikke et millisekund-timestamp igen.
Verificerede UTC-eksempler
Disse UTC-klokkeslæt blev beregnet, ikke gættet:
| Input | Enhed | UTC |
|---|---|---|
| 0 | sekunder | 1970-01-01 00:00:00 |
| 1720000000 | sekunder | 2024-07-03 09:46:40 |
| 1720000000000 | millisekunder | 2024-07-03 09:46:40 |
| 1720000000 | millisekunder | 1970-01-20 21:46:40 |
En enkel beslutningsguide til konvertering
Hvis kilden navngiver enheden, så brug den. Ellers er cifferantallet et fingerpeg—tjek derefter, at datoen ser troværdig ud. Konvertér sekunder til millisekunder, når API’et skal bruge ms. Vælg UTC, lokal tid eller en IANA-zone til visning. ISO 8601 er nyttigt til lagring og udveksling.
- Du har et Unix timestamp
- Enhed angivet? Brug den; ellers tjek størrelsesordenen
- Sekunder? ×1000 hvis API’et skal bruge millisekunder
- Millisekunder? Brug direkte i et ms-baseret API
- Vis som UTC, lokal tid eller en IANA-zone
- Skal du bruge en streng? ISO 8601 kan passe
Timestampet identificerer et punkt i tiden. UTC, lokal tid eller en tidszone afgør kun, hvordan det øjeblik vises for et menneske.
Konvertér Unix timestamps i browseren
NEXNARA Dato- og tidskonverter konverterer Unix-sekunder og millisekunder, viser UTC, lokal tid og ISO 8601 og konverterer mellem IANA-tidszoner.
Unix-tilstand understøtter sekunder, millisekunder, autoenhed, aktuel tid og dato-til-timestamp. Tidszonetilstand søger IANA-navne, bruger browserens zone og anvender sommertidskendte Intl-forskydninger. Formattilstand har regionslæsbart output, 12/24-timers visning og et værn mod tvetydige datoer. Datoforskel er en separat tilstand.
Konverteringen bruger browserens Date- og Intl-API’er. Værdier uden for, hvad Date kan repræsentere, afvises. Autoenhed gætter ikke 11–12-cifrede værdier; vælg sekunder eller millisekunder.
Selve dato- og timestamp-konverteringen sker i din browser. Input sendes ikke til en NEXNARA-server for konvertering. Annoncer og andre sitefunktioner bruger stadig netværket.
Indsæt et timestamp i Dato- og tidskonverter og sammenlign UTC, lokal tid og ISO 8601, før du vælger enhed.
FAQ
Hvordan konverterer jeg et Unix timestamp til en dato?
Kend enheden. For sekunder i JavaScript, brug new Date(n * 1000). For millisekunder, new Date(n). Formatér derefter som UTC, lokal tid eller en zone.
Er Unix timestamp i sekunder eller millisekunder?
Begge dele. Cirka 10 cifre betyder ofte sekunder og cirka 13 millisekunder, men det er en tommelfingerregel, ikke en regel.
Hvorfor viser mit timestamp 1970?
Som regel er en sekundværdi blevet læst som millisekunder. Se Unix Timestamp i sekunder vs millisekunder: hvorfor datoen viser 1970.
Er Unix timestamp altid UTC?
Epoch er defineret i forhold til UTC, og tallet identificerer et øjeblik. Visningstidszonen er separat. Det er ikke et gemt ”UTC-tidszonefelt”.
Indeholder et Unix timestamp en tidszone?
Nej. Det bærer ikke et IANA-id. Tidszonen anvendes, når du formatterer øjeblikket.
Hvordan konverterer jeg en dato til Unix timestamp?
Fra en UTC ISO-streng er date.getTime() millisekunder; Math.floor(date.getTime() / 1000) er sekunder.