Konverter Unix-tidsstempel til dato
Konverter et Unix-tidsstempel til en læsbar dato og tid — eller en hvilken som helst dato tilbage til et Unix-tidsstempel. Understøtter sekunder og millisekunder.
Del dette værktøj
Integrer på dit websted
Relaterede værktøjer
Hvad er et Unix-tidsstempel?
Et Unix-tidsstempel, også kaldet Unix time eller POSIX time, er antallet af sekunder, der er forløbet siden 1970-01-01 00:00:00 UTC, kendt som Unix-epoken. Det er en vidt brugt standard inden for datalogi, fordi det repræsenterer et tidspunkt som et enkelt heltal, hvilket gør lagring, sammenligning og aritmetik ligetil.
JavaScript arbejder internt i millisekunder, så Date.now() returnerer Unix-tidsstemplet ganget med 1000. Mange API'er, databaser og backend-systemer bruger sekunder i stedet. Dette værktøj accepterer begge formater og registrerer automatisk sekunder eller millisekunder baseret på størrelsen af det tal, du indtaster.
Bemærkelsesværdige Unix-tidsstempler
| Tidsstempel | Dato (UTC) | Bemærkning |
|---|---|---|
0 | 1970-01-01 00:00:00 | Unix-epoken |
1.000.000.000 | 2001-09-09 01:46:40 | 1 milliard sekunder |
2.000.000.000 | 2033-05-18 03:33:20 | 2 milliarder sekunder |
2.147.483.647 | 2038-01-19 03:14:07 | År 2038-problemet (maksimum 32-bit) |
Hvorfor 1970?
Unix-epoken 1. januar 1970 blev valgt dels af tradition og dels på grund af praktiske begrænsninger. Unix blev udviklet i slutningen af 1960'erne og begyndelsen af 1970'erne på Bell Labs. Udviklerene havde brug for en nylig, afrundet startdato til deres tidsrepræsentation. 1. januar 1970 var nylig nok til at være praktisk og havde ingen særlig teknisk betydning — det var blot et bekvemt ankerpunkt.
Alternative epoke-datoer findes i andre systemer: Windows FILETIME-epoken er 1. januar 1601; GPS-tiden startede 6. januar 1980; NTP-epoken er 1. januar 1900. Når der konverteres mellem systemer, er det afgørende at kende hvert systems epoke.
Sekunder vs. millisekunder
Det oprindelige Unix-tidsstempel er i sekunder. De fleste server-side sprog og systemer (Unix shell, Pythons time.time(), PHPs time(), de fleste databaser) bruger sekunder. JavaScripts Date.now() og new Date().getTime() returnerer millisekunder. Denne uoverensstemmelse er en almindelig fejlkilde, når JavaScript-frontends kommunikerer med backend-API'er.
Et Unix-tidsstempel i sekunder er i øjeblikket et 10-cifret tal (omkring 1.700.000.000 fra 2023). Et millisekund-tidsstempel er et 13-cifret tal. Lommeregneren registrerer, hvilket format du har indtastet, baseret på antallet af cifre, og konverterer derefter.
År 2038-problemet
Systemer, der gemmer Unix-tidsstempler som et signeret 32-bit heltal, kan kun repræsentere datoer op til 2.147.483.647 sekunder efter epoken — hvilket er 03:14:07 UTC på 19. januar 2038. Efter det øjeblik overløber et signeret 32-bit heltal til et stort negativt tal, der repræsenterer en dato i 1901.
Dette kaldes nogle gange "Y2K38"-problemet eller Unix Millennium Bug. Moderne 64-bit-systemer påvirkes ikke, da et signeret 64-bit heltal kan repræsentere tidsstempler i cirka 292 milliarder år. Dog kan indlejrede systemer, ældre databaser og ældre 32-bit-software stadig være sårbare. Mange brancher — herunder telekommunikation, bank og industrielle kontrolsystemer — har igangværende migreringsindsatser for at løse dette.
Sådan får du det aktuelle Unix-tidsstempel
| Sprog / miljø | Kommando |
|---|---|
| JavaScript | Math.floor(Date.now() / 1000) |
| Python | import time; int(time.time()) |
| PHP | time() |
| Bash | date +%s |
| SQL (PostgreSQL) | EXTRACT(EPOCH FROM NOW())::int |
| SQL (MySQL) | UNIX_TIMESTAMP() |
| Go | time.Now().Unix() |
| Rust | SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs() |
Praktisk brug
API-udvikling: REST-API'er bruger almindeligvis Unix-tidsstempler til created_at-, updated_at- og token-udløbsfelter. Et tidsstempel er tidszoneagnostisk og utvetydigt — i modsætning til formaterede dato-strenge, som afhænger af lokalitet og formateringskonventioner.
Token-udløb: JWT (JSON Web Tokens) bruger Unix-tidsstempler til exp (udløb) og iat (udstedt på) claims. En token udløber, når det aktuelle tidsstempel overstiger exp-værdien. Beregning af udløbstider — "denne token skal udløbe om 24 timer" — kræver at lægge 86.400 sekunder til det aktuelle tidsstempel.
Cache TTL: Cache-udløb sættes ofte som et Unix-tidsstempel eller som et antal sekunder fra nu. Fejlfinding af cache-problemer kræver ofte at konvertere et gemt udløbs-tidsstempel til et menneskeligt læsbart format.
Loganalyse: Server-logs inkluderer ofte Unix-tidsstempler. Konvertering af disse til læsbare datoer er det første skridt i at korrelere log-poster med virkelige begivenheder.
Databaselagring: Lagring af tidsstempler som heltal i stedet for formaterede strenge undgår tidszone-konverteringsfejl og forenkler sortering, områdespørgsmål og aritmetik. En forespørgsel for "alle poster fra de sidste 7 dage" bliver WHERE created_at > (NOW_UNIX - 604800).
Ofte stillede spørgsmål
Hvad er et Unix-timestamp?
Et Unix-timestamp er antallet af sekunder, der er gået siden 1. januar 1970 kl. 00:00:00 UTC — et referencepunkt kaldet Unix-epoken. Det repræsenterer et tidspunkt som ét enkelt heltal, hvilket gør det nemt at gemme, sammenligne og regne med. Det er standardtidsformatet i de fleste operativsystemer, databaser, API’er og programmeringssprog.
Hvordan konverterer jeg et Unix-timestamp til en dato?
Indtast timestampet i konverteren, så får du den tilsvarende dato og tid i UTC og i din lokale tidszone. Værktøjet registrerer automatisk, om du har indtastet sekunder (et 10-cifret tal) eller millisekunder (et 13-cifret tal). Du kan også konvertere den anden vej: vælg en dato og et klokkeslæt for at få det tilsvarende Unix-timestamp.
Hvad er forskellen på Unix-tid i sekunder og millisekunder?
Det oprindelige Unix-timestamp er i sekunder. De fleste server-side systemer — PHP, Python, Go, Bash, SQL-databaser — bruger sekunder. JavaScripts Date.now() og new Date().getTime() returnerer millisekunder (Unix-sekunder × 1000). Et timestamp i sekunder er typisk 10 cifre; et timestamp i millisekunder er 13 cifre. At forveksle de to er en almindelig fejl, f.eks. når en JavaScript-frontend sender et timestamp til en backend, der forventer sekunder.
Hvorfor starter Unix-tid den 1. januar 1970?
Datoen blev valgt af Unix-udviklerne på Bell Labs i starten af 1970’erne som et praktisk, relativt nyligt startpunkt. Den har ingen særlig betydning ud over at være en rund dato tæt på tidspunktet, hvor systemet blev udviklet. Andre systemer bruger andre epoker: Windows FILETIME starter 1. januar 1601; GPS-tid starter 6. januar 1980; NTP starter 1. januar 1900.
Hvad er Year 2038-problemet?
Systemer, der gemmer Unix-timestamps som et signed 32-bit heltal, kan kun repræsentere datoer op til 19. januar 2038 (timestamp 2.147.483.647). Derefter overflow’er værdien til et stort negativt tal, som repræsenterer en dato i 1901. Moderne 64-bit systemer er ikke påvirket. Men ældre indlejrede systemer, gamle databaser og 32-bit software kan stadig være sårbare og kræve migrering inden den dato.
Hvordan får jeg det aktuelle Unix-timestamp i mit programmeringssprog?
JavaScript: Math.floor(Date.now() / 1000). Python: import time; int(time.time()). PHP: time(). Bash: date +%s. PostgreSQL: EXTRACT(EPOCH FROM NOW())::int. MySQL: UNIX_TIMESTAMP(). Go: time.Now().Unix(). Alle disse returnerer den aktuelle tid som sekunder siden Unix-epoken.
Relaterede artikler
Unix-timestamps i planlagte opgaver og cron-jobsCron-jobs og planlagte opgaver arbejder hele tiden med tid — hvornår der skal køres, hvor lang tid siden sidste kørsel, og om en opgave er forsinket. Her er hvordan Unix-timestamps passer ind i planlægningssystemer, og hvordan du bruger dem til mere robust logik.
Unix-tidsstempler i logfiler — Sådan læser og debugger du demServerlogfiler indeholder ofte Unix-tidsstempler, som er svære at læse ved første øjekast. Her er, hvordan du konverterer dem, korrelerer logposter på tværs af systemer, og opdager almindelige tidsstempel-fejl under loganalyse.
Epoch Time i API'er og logs forklaret: Sådan læser og konverterer du det korrektEpoch time dukker op overalt i API'er, databaser og logs, men det er let at misforstå. Denne guide forklarer, hvad epoch time betyder, hvorfor systemer bruger det, og hvordan du konverterer det uden almindelige fejl.