PowerShell: Einlesen eines kulturunabhängigen Datum-Strings

Dieser kleine Artikel soll eine Möglichkeit aufzeigen, wie das korrekte Einlesen eines Strings als Datum in kulturunabhängiger Schreibweise durchgeführt werden kann. Erste Voraussetzung ist, dass der String bestimmte Daten beinhaltet. So muss der String mindestens eine gültige Dateninformation bzw. Werte aufweisen. Ein Beispiel ohne Uhrzeit in deutscher Schreibweise wäre:

01.08.2019

In deutscher Schreibweise (dd/MM/yyyy) ist das Datum also:

01. August 2019

Das System würde diesen String aufgrund des Standards (System-Culture) wie folgt einlesen:

Dienstag, 8. Januar 2019 00:00:00

Um diesen Fehler/Verdreher beim Einlesen des Strings und bei der Konvertierung zu einem „echten“ Datum zu verhindern kann folgende Zeile helfen.

$MeinDatum = "01.08.2019"
"{0:dd/MM/yyyy}" -f [datetime]$MeinDatum
echo $MeinDatum

Die direkte Ausgabe und Interpretation des Systems sieht dann wie folgt aus:

Donnerstag, 1. August 2019 00:00:00

Somit kann dieser Wert genutzt werden, um beispielsweise Vergleiche an bestimmten Daten durchzuführen. Da keine Uhrzeit im String zu finden war, wird diese automatisch auf 00:00:00 gesetzt.

Natürlich lässt sich über die Sinnhaftigkeit dieser Methode diskutieren ;-) und mit Sicherheit gibt es noch einige andere Wege um ein in internationaler Schreibweise formatiertes Datum korrekt einzulesen. Umso mehr freue ich mich über Kommentare mit alternativen Möglichkeiten.

Leon Gawinski

System Engineer Softwarebereich Microsoft

Empfohlene Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"