Datum en tijd omzetten

Het omgaan met datum- en tijdwaarden lijkt op het eerste gezicht misschien eenvoudig, maar wie zich als ontwikkelaar, tester of data-analist ooit met internationale applicaties of backend-logica heeft beziggehouden weet dat de realiteit anders is. De wereld hanteert niet één manier om een datum weer te geven, noch om een tijdstip op te slaan. Afhankelijk van je doelgroep, land, tijdzone of zelfs de software dat je gebruikt, kun je geconfronteerd worden met verschillende patronen, tijdsrepresentaties en technische beperkingen.

Om dit probleem te verlichten kun je onderstaande tool gebruiken waarmee je schakelen tussen Unix-timestamps (in seconden of milliseconden), leesbare datumformaten en zelfs aangepaste weergaves met behulp van een zelf gedefinieerd patroon.

Een van de belangrijkste concepten die deze tool behandelt is de Unix tijdstempel of epoch-tijd. Deze wordt wereldwijd gebruikt om tijdstippen op een gestandaardiseerde en tijdzone-onafhankelijke manier vast te leggen. Een Unix tijdstempel geeft het aantal seconden weer sinds 1 januari 1970 om 00:00:00 UTC. Voor bijvoorbeeld een tijdstempel als 1751796336 betekent dit dat het moment overeenkomt met 6 juli 2025 om 12 uur 6 minuten en 36 second UTC. Omdat veel systemen op millisecondenniveau werken (zoals de Date.now() van JavaScript), wordt ook de millisecondenvariant (x) ondersteund.

Waar timestamps efficiënt zijn voor computers, zijn ze voor mensen moeilijk leesbaar. Daarom worden ze vaak omgezet naar een datum- en tijdnotatie, bijvoorbeeld 2025-07-06 14:23:45. De manier waarop je zo'n datum opschrijft, kan variëren per land, applicatie of standaard. In Nederland schrijven we bijvoorbeeld liever 06-07-2025 14:23, terwijl in de Verenigde staten eerder 07/06/2025 02:23 PM gebruikelijk is. Er bestaan bovendien verschillende standaarden voor gestructureerde data-uitwisseling, zoals ISO 8601 (2025-07-06T14:23:45Z) of RFC 2822 (Sun, 06 Jul 2025 14:23:45 GMT), die handig zijn bij API's en e-mailsystemen.

Om dit allemaal werkbaar te maken biedt de tool meerdere voorgeconfigureerde patronen aan, waaronder ISO (lokaal of UTC), RFC, lokale formattering via Intl.DateTimeFormat, en uiteraard een aangepaste modus waarin je je eigen patroon kunt samenstellen. Denk hierbij aan een patroon zoals DD/MM/YYYY HH:mm:ss, dat dan resulteert in een waarde als 06/07/2025 14:23:45.

De tool bevat een formatter en parser die met behulp van zogenaamde tokens werkt. Deze tokens fungeren als placeholders die bij het formatteren worden vervangen door delen van de datum, en bij het parsen worden herkend en geïnterpreteerd als invoer. Een overzicht van de beschikbare tokens vind je hieronder. Hierbij is het belangrijk te weten dat alle tokens werken bij het weergeven, terwijl sommige alleen beschikbaar zijn bij het parsen. Zo is MMMM, de volledige maandnaam, alleen bruikbaar bij weergeven en niet bij het parsen.

TokenBetekenisFormatterParser
YYYYViercijferig jaarJaJa
YYLaatste twee cijfers van jaarJaJa
MMMMVolledige maandnaamJaNee
MMMAfkorting maandnaam (3 letters)JaNee
MMMaand met voorloopnul (01–12)JaJa
MMaand zonder voorloopnul (1–12)JaJa
DDDag van de maand met voorloopnul (01–31)JaJa
DDag van de maand zonder voorloopnulJaJa
ddddVolledige naam weekdagJaNee
dddAfkorting weekdag (3 letters)JaNee
ddAfkorting weekdag (2 letters)JaNee
dDag van de week (1=Zondag)JaNee
HHUur in 24-uursformaat (met voorloopnul)JaJa
HUur in 24-uursformaatJaJa
hhUur in 12-uursformaat (met voorloopnul)JaJa
hUur in 12-uursformaatJaJa
kkUur 1–24 (startend bij 1) met voorloopnulJaJa
kUur 1–24 (startend bij 1)JaJa
mmMinuten met voorloopnulJaJa
mMinuten zonder voorloopnulJaJa
ssSeconden met voorloopnulJaJa
sSeconden zonder voorloopnulJaJa
SSSMilliseconden (3 cijfers)JaJa
AAM of PM (hoofdletters)JaJa
aam of pm (kleine letters)JaJa
ZZTijdzone offset zonder dubbele punt (bv. +0200)JaJa
ZTijdzone offset met dubbele punt (bv. +02:00)JaJa
zTijdzone naam (zoals CET)JaNee
QQQVolledige kwartaalnaam (bijv. "2e kwartaal")JaNee
QQKwartaal in Q1–Q4JaNee
QKwartaal als cijfer (1–4)JaNee
XEpoch in secondenJaJa
xEpoch in millisecondenJaJa

Een belangrijk onderdeel van de tool is dat je beide kanten op kan werken. Wanneer je bijvoorbeeld een tijdstempel invoert, wordt de datum automatisch geüpdatet volgens het gekozen formaat. En omgekeerd als je een datum in het invoerveld typt, bijvoorbeeld 06-07-2025 14:23:45 met als patroon DD-MM-YYYY HH:mm:ss, wordt de bijbehorende tijdstempel automatisch berekend. Dit maakt de tool handig bij het testen van datumlogica in front-end of back-end code, bij het debuggen van logs, of simpelweg wanneer je als ontwikkelaar snel een datum moet vertalen naar een epoch of vice versa.

Intern maakt de widget gebruik van JavaScript's Date-object, Intl.DateTimeFormat en enkele reguliere expressies om patronen te matchen en waarden te extraheren. Daarnaast wordt de status opgeslagen in localStorage, zodat je favoriete instellingen bewaard blijven wanneer je terug komt.

Link

Verder lezen

Widget gemaakt met staark