De nachtmerrie genaamd datum

Wanneer ik denk aan een datum dan denk ik al snel aan een Date of een Calendar. Wanneer je dan een datum toevoegt, is de format van deze datum altijd hetzelfde. Dit is niet alleen handig, maar ook nog eens gebruikersvriendelijk.

En nu hoor ik je denken: dat is toch logisch? Dat gebruikt iedereen toch? Zou je denken ja, maar in mijn huidige project (SogyoSearch) heb ik een bron waarbij ik al op minstens zes verschillende manieren een datum terug heb gekregen! Hoe kan dat? Heel simpel, ze hebben er een String van gemaakt!

Wanneer je er een String van maakt geef je de gebruiker over het algemeen erg veel vrijheid over hoe hij of zij een datum invoert en het zal je verbazen op hoeveel verschillende manieren dat gebeurt.

Ik moest voor SogyoSearch alles sorteren op datum. Niet zo moeilijk, gewoon sorteren op datum… Maar wanneer de een “02-03-2011” heeft ingevuld, heeft een ander “03-02-2011” ingevuld. Of wat dacht je van “02/03/2011” of “02/03/11” of alleen “03/11”? Nog leuker is het wanneer iemand niks invult. Dan krijg je een lege String terug. Als je geluk hebt dan! Vandaag kreeg ik namelijk voor het eerst een datum terug die null was.

Zoiets simpels als het sorteren op datum wordt zo een verschrikkelijke nachtmerrie! Mijn advies is dan ook: check de datum!! Het is niet moeilijk. Gebruik een datepicker of maak gebruik van de Calendar API van Java, maar stop een datum nou niet in een String! Het voorkomt een hoop hoofdpijn en ergernis ;-).

Nu gaat deze post dan wel over een datum, maar er zijn meerdere voorbeelden te bedenken waarbij je liever één vaste format wilt hebben. Denk bijvoorbeeld aan een telefoonnummer of een postcode. Het is niet moeilijk, dus maak gebruik van de (vele) mogelijkheden.

Namens alle mensen die ermee moeten werken: bedankt!