Alle gidsen

Een Unix-timestamp omzetten naar een datum, en een datum naar een timestamp

Gepubliceerd op · Bijgewerkt op 3 min leestijd

Een Unix-timestamp is een getal dat de tijd telt die is verstreken sinds 1 januari 1970 middernacht, in universele tijd. U komt hem tegen in databases, programmalogs en website-interfaces. Twee vragen bepalen de datum die u krijgt: de eenheid van het getal en de tijdzone waarin u het resultaat leest.

Een referentiewaarde

Unix-timestamp converteren geeft drie lezingen van hetzelfde moment. Voor 1700000000, met een browser die op Parijse tijd staat:

LezingResultaat
UTC-datumTue, 14 Nov 2023 22:13:20 GMT
Lokale datum14 november 2023 om 23:13:20 UTC+1
ISO2023-11-14T22:13:20.000Z

De lokale tijd volgt de tijdzone van de browser: in de winter een uur later in Parijs. Dezelfde timestamp is één enkel moment, gelezen in twee tijdzones.

De eenheid wordt herkend aan het aantal cijfers

De standaardinstelling herkent de eenheid aan de lengte van het getal. De drie volgende waarden duiden hetzelfde moment aan, binnen de nauwkeurigheid.

GetalCijfersHerkende eenheidVerkregen moment
170000000010Seconden14 nov 2023, 22:13:20 UTC
170000000000013Milliseconden14 nov 2023, 22:13:20 UTC
170000000012345616Microseconden14 nov 2023, 22:13:20.123 UTC

De regel: tot 11 cijfers seconden; van 12 tot 14 milliseconden; 15 en 16 microseconden. De instelling "milliseconden" dwingt die eenheid af.

De valkuil van de regel

Omdat de eenheid uit de lengte wordt afgeleid, wordt een dubbelzinnige waarde maar op één manier gelezen: 10000000000 (11 cijfers) geeft 20 november 2286, en 100000000000 (12 cijfers) 3 maart 1973. Een timestamp in milliseconden van vóór maart 1973 heeft 11 cijfers of minder en zou als seconden worden gelezen: dwing dan de instelling "milliseconden" af.

Waarden van vóór 1970 en de limiet van 2038

Een negatief getal duidt een moment vóór 1970 aan: −1 geeft 31 december 1969 om 23:59:59 UTC, en 0 geeft 1 januari 1970 middernacht.

Het getal 2147483647 is het grootste dat een 32-bits geheel getal met teken kan bevatten: het geeft 19 januari 2038 om 03:14:07 UTC. Het volgende getal, 2147483648, geeft 03:14:08. Het hulpmiddel gaat zonder limiet door, maar een systeem dat de tijd op 32 bits opslaat kan dat niet: dat is de "bug van het jaar 2038".

Een datum omzetten naar een timestamp

Voer een datum in in plaats van een getal: het hulpmiddel geeft de timestamp in seconden en in milliseconden.

InvoerTimestamp in secondenLezing
2026-01-011767225600Middernacht in universele tijd, geen tijdzone opgegeven
2026-01-01T10:30:00+01:00176725980010:30 in Parijs, dus 09:30 in universele tijd
2024-02-291709164800Schrikkeljaar geaccepteerd

Een datum zonder tijdzone wordt in universele tijd gelezen, niet in lokale tijd: het hulpmiddel herinnert u daar in het resultaat aan. Een datum die niet bestaat, zoals 30 februari 2026, wordt geweigerd met een bericht.

Veelgemaakte fouten

  • Milliseconden als seconden lezen: de datum komt duizenden jaren te ver.
  • De tijdzone vergeten: een datum die als lokaal is gelezen en daarna als universeel is verstuurd, verschuift met een of meer uren.
  • Een datum zonder tijdzone schrijven terwijl u aan lokale tijd denkt, terwijl hij in universele tijd wordt gelezen.

Om de dagen tussen twee datums te tellen, zie De dagen tussen twee datums tellen.

Voor welke gevallen

Een programmalog, een database, het antwoord van een onlinedienst of een geëxporteerd bestand: het getal is moeilijk te lezen, de datum leest u meteen.

Een conversie controleren

  1. Lees de UTC-regel opnieuw, die niet van uw apparaat afhangt.
  2. Controleer de eenheid die in de eerste regel van het resultaat wordt vermeld.
  3. Converteer de verkregen datum terug: u moet het getal waarmee u begon terugvinden.

Unix-timestamp converteren

Veelgestelde vragen

Wat is een Unix-timestamp?
Het aantal seconden dat is verstreken sinds 1 januari 1970 middernacht, in universele tijd.
Hoe weet u of een getal in seconden of milliseconden is?
Het hulpmiddel leidt het af uit het aantal cijfers: tot 11 cijfers seconden; van 12 tot 14 milliseconden; 15 en 16 microseconden.
Wat gebeurt er in 2038?
Het getal 2147483647, het grootste 32-bits gehele getal met teken, komt overeen met 19 januari 2038. Een systeem dat de tijd op 32 bits opslaat kan niet verder.
Welke tijdzone wordt gebruikt voor een datum zonder tijdzone?
Universele tijd, niet lokale tijd. Het hulpmiddel herinnert u daar in het resultaat aan.