Utilia

Unix-tidsstämpel till datum

Omvandla Unix-tidsstämplar i sekunder eller millisekunder till läsbara datum i lokal tid, UTC och ISO 8601, och gör om valfritt datum till epoch-tid.

Aktuell tidsstämpel
–

Tidsstämpel → datum

Lokal tid
–
UTC
–
ISO 8601
–

Datum → tidsstämpel

Sekunder
–
Millisekunder
–

Så använder du omvandlaren för Unix-tidsstämplar

  1. Vill du omvandla en tidsstämpel till ett datum klistrar du in ett epoch-värde som 1700000000 eller 1700000000000 under Tidsstämpel → datum. Verktyget avgör utifrån storleken om värdet är i sekunder eller millisekunder.
  2. Läs resultatet i Lokal tid (din tidszon), i UTC och i formatet ISO 8601.
  3. För att gå åt andra hållet anger du datum och tid under Datum → tidsstämpel. Verktyget ger dig motsvarande epoch-värde i både Sekunder och Millisekunder.
  4. Titta på Aktuell tidsstämpel högst upp, som uppdateras löpande, när du behöver ”nu” som epoch-värde.

Vad är en Unix-tidsstämpel?

En Unix-tidsstämpel, även kallad epoch-tid eller POSIX-tid, är antalet sekunder som har gått sedan Unix-epoken: 1 januari 1970 kl. 00:00:00 UTC. Till exempel motsvarar 1700000000 den 14 november 2023 kl. 22:13:20 UTC, vilket är 23:13:20 svensk normaltid. Datum före 1970 representeras av negativa tal.

Tidsstämplar är populära bland utvecklare eftersom de är ett enda tal som inte beror på tidszoner, sommartid eller datumformat. Att jämföra två tidpunkter är en enkel subtraktion, och att sortera efter tid är en enkel numerisk sortering. Du hittar dem i databaser, loggfiler, API-svar, JWT-anspråk som exp och iat, filmetadata och cron-liknande schemaläggare.

Observera att Unix-tid ignorerar skottsekunder: varje dygn räknas som exakt 86 400 sekunder. Det håller aritmetiken enkel och är förklaringen till att en tidsstämpel inte är en exakt räkning av varje fysisk sekund sedan 1970.

Sekunder eller millisekunder

Den vanligaste källan till förvirring är enheten. Traditionella Unix-system, PHP, Pythons time.time() och de flesta databaser använder sekunder, vilket i dag ger ett tal med 10 siffror. JavaScripts Date.now(), Javas System.currentTimeMillis() och många JSON-API:er använder millisekunder, vilket ger ett tal med 13 siffror. Tolkar du millisekunder som sekunder hamnar du tiotusentals år in i framtiden, och tolkar du sekunder som millisekunder hamnar du i januari 1970. Verktyget tittar på talets storlek för att välja rätt enhet automatiskt, och när du omvandlar ett datum visas båda värdena så att du kan kopiera det ditt system förväntar sig.

Lokal tid, UTC och ISO 8601

En tidsstämpel identifierar ett exakt ögonblick, men ögonblicket visas olika beroende på tidszon. Det lokala resultatet använder tidszonen som är inställd på din enhet (i Sverige CET, eller CEST under sommartid), medan UTC är den universella referens som servrar och loggar använder. ISO 8601, till exempel 2023-11-14T22:13:20.000Z, är det entydiga textformat som rekommenderas för att utbyta datum mellan system. Det avslutande Z betyder UTC.

År 2038-problemet

Många äldre system lagrar Unix-tid som ett 32-bitars heltal med tecken, vars största värde är 2 147 483 647. Den gränsen nås den 19 januari 2038 kl. 03:14:07 UTC. En sekund senare slår en sådan räknare över till ett stort negativt tal och tolkas som ett datum i december 1901. Moderna operativsystem, databaser och programmeringsspråk har till stor del gått över till 64-bitars tidsvärden, som skjuter gränsen miljarder år in i framtiden, men inbyggda system, äldre filformat och gamla databaskolumner kan fortfarande drabbas. JavaScript påverkas inte, eftersom det lagrar tid som millisekunder i ett 64-bitars flyttal.

Integritet

Alla omvandlingar sker i din webbläsare med dess inbyggda datumfunktioner. Inga tidsstämplar eller datum skickas till någon server.

Vanliga frågor

Hur vet jag om min tidsstämpel är i sekunder eller millisekunder?

Räkna siffrorna. Ett aktuellt datum har 10 siffror i sekunder och 13 siffror i millisekunder. Verktyget tillämpar samma logik automatiskt, utifrån talets storlek.

Varför skiljer sig lokal tid från UTC?

Båda beskriver samma ögonblick. Lokal tid tillämpar enhetens tidszonsförskjutning och regler för sommartid, medan UTC saknar förskjutning. Om du delar en tidpunkt med personer på andra håll undviker du missförstånd med UTC eller ISO 8601.

Kan en Unix-tidsstämpel vara negativ?

Ja. Negativa värden står för tidpunkter före 1 januari 1970 UTC. Till exempel är -86400 den 31 december 1969 kl. 00:00:00 UTC.

Innehåller en Unix-tidsstämpel en tidszon?

Nej. En tidsstämpel är alltid relativ till UTC och bär ingen information om tidszon. Tidszonen spelar bara roll när du visar den som kalenderdatum och klockslag.

Kommer mina system att gå sönder 2038?

Bara om de lagrar tid i ett 32-bitars heltal med tecken. Kontrollera äldre databaser, inbyggd firmware och binära filformat. Allt som använder 64-bitars tid är säkert under överskådlig framtid.