Utilia

Unix-timestamp omrekenen

Reken Unix-timestamps in seconden of milliseconden om naar een leesbare datum in lokale tijd, UTC en ISO 8601, en zet elke datum terug om naar epochtijd.

Huidige timestamp
–

Timestamp → datum

Lokale tijd
–
UTC
–
ISO 8601
–

Datum → timestamp

Seconden
–
Milliseconden
–

Zo gebruik je de Unix-timestamp-converter

  1. Wil je een timestamp omzetten naar een datum, plak dan een epochwaarde zoals 1700000000 of 1700000000000 bij Timestamp → datum. De tool herkent aan de grootte of het om seconden of milliseconden gaat.
  2. Lees het resultaat af in je Lokale tijd, in UTC en in het formaat ISO 8601.
  3. Wil je de andere kant op, vul dan bij Datum → timestamp een datum en tijd in en kies de Tijdzone; de tool geeft de bijbehorende epochwaarde in zowel Seconden als Milliseconden.
  4. Kijk naar de Huidige timestamp bovenaan, die live wordt bijgewerkt, wanneer je “nu” als epochwaarde nodig hebt.

Wat is een Unix-timestamp?

Een Unix-timestamp, ook wel epochtijd of POSIX-tijd genoemd, is het aantal seconden dat verstreken is sinds de Unix-epoch: 1 januari 1970 om 00:00:00 UTC. Zo komt 1700000000 overeen met 14 november 2023 om 22:13:20 UTC. Datums vóór 1970 worden weergegeven met negatieve getallen.

Timestamps zijn populair bij ontwikkelaars omdat het één getal is dat niet afhangt van tijdzones, zomertijd of datumnotaties. Twee momenten vergelijken is een simpele aftreksom en sorteren op tijd is gewoon numeriek sorteren. Je komt ze tegen in databases, logbestanden, API-antwoorden, JWT-claims zoals exp en iat, metadata van bestanden en cron-achtige planners.

Let op: Unix-tijd negeert schrikkelseconden. Elke dag telt als precies 86.400 seconden. Dat houdt het rekenwerk eenvoudig en verklaart waarom een timestamp geen exacte telling is van elke fysieke seconde sinds 1970.

Seconden of milliseconden

De grootste bron van verwarring is de eenheid. Traditionele Unix-systemen, PHP, time.time() in Python en de meeste databases gebruiken seconden, wat vandaag een getal van 10 cijfers oplevert. Date.now() in JavaScript, System.currentTimeMillis() in Java en veel JSON-API’s gebruiken milliseconden, wat een getal van 13 cijfers oplevert. Lees je milliseconden als seconden, dan beland je tienduizenden jaren in de toekomst; lees je seconden als milliseconden, dan beland je in januari 1970. Deze tool kijkt naar de grootte van het getal om automatisch de juiste eenheid te kiezen, en bij het omzetten van een datum toont hij beide waarden, zodat je kunt kopiëren wat je systeem verwacht.

Lokale tijd, UTC en ISO 8601

Een timestamp staat voor één exact moment, maar dat moment wordt per tijdzone anders weergegeven. Het lokale resultaat gebruikt de tijdzone die op je apparaat is ingesteld (in Nederland en België CET, of CEST in de zomer), terwijl UTC de universele referentie is van servers en logs. ISO 8601, zoals 2023-11-14T22:13:20.000Z, is het eenduidige tekstformaat dat wordt aanbevolen om datums tussen systemen uit te wisselen; de Z aan het einde betekent UTC.

Het jaar-2038-probleem

Veel oudere systemen slaan Unix-tijd op als signed 32-bits geheel getal, met een maximumwaarde van 2.147.483.647. Die grens wordt bereikt op 19 januari 2038 om 03:14:07 UTC. Een seconde later loopt zo’n teller over naar een groot negatief getal en wordt hij gelezen als een datum in december 1901. Moderne besturingssystemen, databases en programmeertalen zijn grotendeels overgestapt op 64-bits tijdwaarden, die de grens miljarden jaren vooruitschuiven, maar embedded apparaten, oude bestandsformaten en oude databasekolommen kunnen nog steeds getroffen worden. JavaScript zelf heeft er geen last van, omdat het tijd opslaat als milliseconden in een 64-bits drijvendekommagetal.

Privacy

Alle omzettingen gebeuren in je browser met de ingebouwde datumfuncties. Er worden geen timestamps of datums naar een server gestuurd.

Veelgestelde vragen

Hoe weet ik of mijn timestamp in seconden of milliseconden is?

Tel de cijfers. Een huidige datum heeft 10 cijfers in seconden en 13 cijfers in milliseconden. De tool past dezelfde logica automatisch toe, op basis van de grootte van het getal.

Waarom wijkt de lokale tijd af van UTC?

Beide beschrijven hetzelfde moment. De lokale tijd past de offset van de tijdzone van je apparaat en de zomertijdregels toe, terwijl UTC geen offset heeft. Deel je een tijd met mensen elders, dan voorkomen UTC of ISO 8601 misverstanden.

Kan een Unix-timestamp negatief zijn?

Ja. Negatieve waarden staan voor momenten vóór 1 januari 1970 UTC. Zo is -86400 31 december 1969 om 00:00:00 UTC.

Bevat een Unix-timestamp een tijdzone?

Nee. Een timestamp is altijd relatief ten opzichte van UTC en bevat geen tijdzone-informatie. De tijdzone speelt pas een rol als je hem als kalenderdatum en tijd weergeeft.

Lopen mijn systemen in 2038 vast?

Alleen als ze tijd opslaan in een signed 32-bits geheel getal. Controleer oudere databases, firmware van embedded apparaten en binaire bestandsformaten. Alles wat 64-bits tijd gebruikt, is voor de afzienbare toekomst veilig.