Wochentag und Monat mit PowerShell in unterschiedlicher Sprache ausgeben

Wird mit PowerShell über Get-Date das aktuelle Datum abgefragt nutzt PowerShell die regionalen Einstellungen von Windows.

PowerShell

Die Einstellungen lassen sich mit PowerShell über Get-Culture auswerten und in den Regionaleinstellungen von Windows sind die detaillierten Formate abgebildet.

Lokale Konfiguration für regionale Einstellungen
Lokale Konfiguration für regionale Einstellungen

Nun möchte ich eine deutsche Bezeichung ausgeben.

PowerShell
 Get-Date -Format "dddd, dd.MM.yyyy" OR
 Get-Date -Format "dddd, dd. MMMM yyyy"


Durch meine englische Konfiguration stimmt die Bezeichnung für Wochentag/Monat nicht.

PowerShell

Statt die Regionaleinstellungen anzupassen kann ich PowerShell mitgeben welche Sprache es (einmalig) nutzen soll.

  • Für den Wochentag
PowerShell
$RegionalCulture = New-Object System.Globalization.CultureInfo("de-CH")
$DayName = $RegionalCulture.DateTimeFormat.GetDayName((Get-Date).DayOfWeek)
$Date = ("$DayName, " + (Get-Date -format "dd.MM.yyyy"))
$RegionalCulture.TextInfo.ToTitleCase($Date) # to capitalize the first character of the day

PowerShell
  • Für Wochentag und Monat

Mit ein wenig Zusatz passt es den Monatsnamen ebenfalls auf die deutsche Bezeichnung an.

PowerShell
$RegionalCulture = New-Object System.Globalization.CultureInfo("de-CH")
$DayName = $RegionalCulture.DateTimeFormat.GetDayName((Get-Date).DayOfWeek)
$MonthName = $RegionalCulture.DateTimeFormat.GetMonthName(((Get-Date).Month))
$Date = ("$DayName, " + (Get-Date -format "dd. MMMMM yyyy")).Replace((Get-Date -format MMMM),$MonthName)
$RegionalCulture.TextInfo.ToTitleCase($Date) # to capitalize the first character of day and month

PowerShell

Durch die einmalige Anpassung der Sprache kann es auf viele Sprachen verändert werden. Die regionalen Sprachcodes listet Microsoft unter anderem hier. Für die Schweiz unterstützt es auch Rätoromanisch.

PowerShell
$RegionalCulture = New-Object System.Globalization.CultureInfo("rm-CH")
$DayName = $RegionalCulture.DateTimeFormat.GetDayName((Get-Date).DayOfWeek)
$MonthName = $RegionalCulture.DateTimeFormat.GetMonthName(((Get-Date).Month))
$Date = ("$DayName, " + (Get-Date -format "dd. MMMMM yyyy")).Replace((Get-Date -format MMMM),$MonthName)
$RegionalCulture.TextInfo.ToTitleCase($Date) # to capitalize the first character of day and month

PowerShell
Share
Avatar-Foto

Tobias Asböck

Tobias ist ein Senior System Engineer mit rund 10 Jahren Berufserfahrung für Microsoft 365 Produkte wie SharePoint Online, OneDrive for Business, Teams Collaboration, Entra ID, Information Protection, Universal Print und Microsoft 365 Lizenzierung. Aus der Vergangenheit kennt er über einen Zeitraum von 15+ Jahren die Planung, Administration und den Betrieb von SharePoint Server Umgebungen. Tobias ist ein PowerShell Scripter mit Zertifizierungen für Microsoft 365 Produkte. In seiner Freizeit beschäftigt sich Tobias mit Aktualisierungen in der M365-Welt, ist mit seinem Rennvelo unterwegs und anderen sportlichen Aktivitäten beschäftigt.

Schreibe einen Kommentar

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