Unix-tidsstempel til dato-konverterer
Konverter et Unix-tidsstempel til en lesbar dato og tid — eller en hvilken som helst dato tilbake til et Unix-tidsstempel. Støtter sekunder og millisekunder.
Del dette verktøyet
Bygg inn på nettstedet ditt
Relaterte verktøy
Hva er en Unix-tidsstempel?
En Unix-tidsstempel, også kalt Unix time eller POSIX time, er antallet sekunder som har gått siden 1970-01-01 00:00:00 UTC, kjent som Unix-epoken. Det er en mye brukt standard innen databehandling fordi den representerer et tidspunkt som et enkelt tall, noe som gjør lagring, sammenligning og regneoperasjoner enkle.
JavaScript arbeider internt med millisekunder, så Date.now() returnerer Unix-tidsstempelen multiplisert med 1000. Mange API-er, databaser og backendsystemer bruker sekunder i stedet. Dette verktøyet godtar begge formater og oppdager automatisk om du har skrevet inn sekunder eller millisekunder, basert på størrelsen på tallet.
Kjente Unix-tidsstemplinger
| Tidsstempel | Dato (UTC) | Merknad |
|---|---|---|
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 (maks 32-bit) |
Hvorfor 1970?
Unix-epoken 1. januar 1970 ble valgt delvis av tradisjon og delvis på grunn av praktiske begrensninger. Unix ble utviklet på slutten av 1960-tallet og tidlig 1970-tallet ved Bell Labs. Utviklerne trengte en nytlig, rund startdato for tidsrepresentasjonen. 1. januar 1970 var nylig nok til å være praktisk og hadde ingen spesiell teknisk betydning — det var ganske enkelt et praktisk referansepunkt.
Alternative epokdatoer finnes i andre systemer: Windows FILETIME-epoken er 1. januar 1601; GPS-tid startet 6. januar 1980; NTP-epoken er 1. januar 1900. Når man konverterer mellom systemer, er det essensielt å kjenne hver systems epoke.
Sekunder versus millisekunder
Den originale Unix-tidsstempelen er i sekunder. De fleste serversidespråk og systemer (Unix shell, Pythons time.time(), PHPs time(), de fleste databaser) bruker sekunder. JavaScripts Date.now() og new Date().getTime() returnerer millisekunder. Denne uoverensstemmelsen er en vanlig kilde til feil når JavaScript-grensesnitt kommuniserer med backend-API-er.
En Unix-tidsstempel i sekunder er for tiden et 10-sifret tall (rundt 1 700 000 000 fra 2023). En millisekunder-tidsstempel er et 13-sifret tall. Kalkulatoren oppdager hvilket format du har skrevet inn basert på antall siffer og konverterer deretter.
År 2038-problemet
Systemer som lagrer Unix-tidsstempel som et fortegnet 32-bits heltall kan bare representere datoer opp til 2 147 483 647 sekunder etter epoken — som er 03:14:07 UTC 19. januar 2038. Etter det øyeblikket flyter et 32-bits fortegnet heltall over til et stort negativt tall, som representerer en dato i 1901.
Dette kalles noen ganger "Y2K38"-problemet eller Unix Millennium Bug. Moderne 64-bits systemer blir ikke påvirket, da et fortegnet 64-bits heltall kan representere tidsstemplinger i omtrent 292 milliarder år. Imidlertid kan innebygde systemer, eldre databaser og eldre 32-bits programvare fortsatt være sårbare. Mange bransjer — inkludert telekommunikasjon, bankvirksomhet og industrielle kontrollsystemer — har pågående migreringsinnsatser for å håndtere dette.
Slik får du gjeldende Unix-tidsstempel
| Språk / 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 bruk
API-utvikling: REST-API-er bruker vanligvis Unix-tidsstemplinger for created_at, updated_at og token-utløp-felt. En tidsstempel er tidssone-agnostisk og entydig — i motsetning til formaterte datostrengar, som avhenger av lokale innstillinger og formateringskonvensjoner.
Token-utløp: JWT (JSON Web Tokens) bruker Unix-tidsstemplinger for exp (utløp) og iat (utstedt på) krav. En token utløper når gjeldende tidsstempel overstiger exp-verdien. Beregning av utløpstider — "denne token skal utløpe om 24 timer" — krever å legge til 86 400 sekunder til gjeldende tidsstempel.
Cache TTL: Cache-utløp settes ofte som en Unix-tidsstempel eller som et antall sekunder fra nå. Feilsøking av cache-problemer krever ofte å konvertere en lagret utløps-tidsstempel til et menneskelesbart format.
Logganalyse: Serverlogger inneholder ofte Unix-tidsstemplinger. Å konvertere dem til lesbare datoer er det første trinnet i å korrelere loggoppføringer med virkelige hendelser.
Databaselagring: Å lagre tidsstemplinger som tall i stedet for formaterte strenger unngår konverteringsfeil mellom tidssoner og forenkler sortering, områdespørringer og regneoperasjoner. Et spørsmål for "alle poster fra de siste 7 dagene" blir WHERE created_at > (NOW_UNIX - 604800).
Relaterte artikler
Unix-tidsstempel og År 2038-problemet forklartÅr 2038-problemet er en reell programvarefeil som vil påvirke systemer som lagrer Unix-tidsstempel som 32-bits heltall. Her er hva som forårsaker det, hvilke systemer som er utsatt, og hva som gjøres for å løse det.
Epoch Time i APIer ogLogger Forklart: Slik Leser og Konverterer Du Det RiktigEpoch time dukker opp overalt i APIer, databaser og logger, men det er lett å misforstå. Denne guiden forklarer hva epoch time er, hvorfor systemer bruker det, og hvordan du konverterer det uten vanlige feil.