Es sind nur Daten im Format TT.MM.JJJJ erlaubt.

Die Eingabe in diesem Feld ist ungültig.

Die Frage ist: Warum?

Ja, klar, denn eine Angabe wie 5.6.1988 oder 05061988 oder 5.6.88 entsprechen nicht dem Regulären Ausdruck, der das Format TT.MM.JJJJ beschreibt. Daher ist es falsch. Und damit ist dieser Artikel auch schon zu Ende.

Aber nein, Spaß. Natürlich gibt es darüber jede Menge zu jammern, lästern und auch zu verbessern.

Denn es ist eigentlich eine Unsitte von diversen Programmierern oder Softwareentwicklern (sind es wirklich schon welche?), Datumsparser so zu implementieren, dass man als Endanwender mehr Kummer als Arbeit hat. Beides ist schlecht.

Die Frage ist also: Warum muss das entsprechende Programm so hart implementiert sein, dass nur exakt dieses ausladende Format erlaubt ist, und warum kann der Programmierer nicht einen Algorithmus implementieren, die ein heuristisch optimistisches Parsen erlaubt. Es wäre so einfach und so eindeutig. Die Parser existieren und man müsste einfach nur ein DateTime.Parse(string) auf das Ganze los lassen. Das, was da in der Regel herauskommt, ist eindeutig und das gewünschte. Zur Kontrolle kann man das geparste Datum ja dann wieder in dem GUI-Feld in der genormten Langschreibweise darstellen. Ein geneigter Anwender wird es im Zweifelsfalle dann korrigieren.

Insofern ergeht ein dringender Aufruf an alle Softwareentwickeler und diejenigen Programmierer, die welche werden wollen: Macht den Endanwendern das Eingeben von Datumsen so einfach wie möglich. Last den Server-Rechner schruppen, der ist dafür da – nicht der Anwender. Heuristik geht über möglichst stark und formal eingeschränkte Eingabefelder! Relaxiert die Anforderung – denn oft wisst ihr nicht genug über den Anwender und seine Kultur. Ein Beispiel ist Your name ist invalid.