Das Datum in der PowerShell

Das klassische Beispiel, wenn es um Probleme mit regionalen Einstellungen in PowerShell geht, ist das Datum: Heute ist der 23. Januar 2017

Der PowerShell Befehl Get-Date zeigt folgendes auf einem deutschen Server:

PS C:\> Get-Date

Montag, 23. Januar 2017 09:57:21

Das gleiche auf einem englischen Server:

PS C:\> Get-Date

Monday, January 23, 2017 10:19:30 AM

In Skripten sieht man ganz gerne folgende Methode für die Kurzform des Datums

(Get-Date).ToShortDateString()

Auf einem deutschen Server bekomme ich folgendes Ergebnis (Tag.Monat.Jahr)

PS C:/> (Get-Date).ToShortDateString()
21.01.2017

Auf einem englischen Server sieht es aber so aus (Monat/Tag/Jahr)

PS C:/> (Get-Date).ToShortDateString()
1/21/2017

Das kann natürlich später im Skript zu Problemen führen, da Tag und Monat an verschiedenen Stellen stehen.

Wenn ich immer das gleiche Ausgabeformat haben möchte, dann gebe ich es lieber gleich sprachunabhängig vor. Das Ergebnis ist auf beiden Servern identisch.

Get-Date –Format „dd.MM.yyyy“

PS C:\>  Get-Date –Format "dd.MM.yyyy"
21.01.2017

Noch eleganter ist es, anstatt mit dem Befehlsparameter –format, mit einer Datums-Methode zu arbeiten

(Get-Date).ToString("dd.MM.yyyy")

PS C:\> (Get-Date).ToString("dd.MM.yyyy")
21.01.2017

So ist es möglich, mehrere Methoden zu verbinden, z.B. ziehe einen Tag ab und wandle das Datum in das Kurzformat um

(Get-Date).AddDays(-1).ToString("dd.MM.yyyy")

PS C:\> (Get-Date).AddDays(-1).ToString("dd.MM.yyyy")
22.01.2017

Im nächsten Blogeintrag schauen wir uns die Uhrzeit genauer an

Was denken Sie?