Powershell 中的语言环境日名月名

locale dayname monthname in powershell

我正在尝试在其他语言环境中设置日期格式。

我最好的是

$l1 =  'fr-FR' , 'de' , 'en-GB'

foreach ( $letter in $l1 ) {
    $culture = New-Object System.Globalization.CultureInfo($letter)
    $date = get-date -Format $culture.DateTimeFormat.LongDatePattern

    echo ('culture locale = ' + $letter + ' > ' + $date )
    }

这给出了

culture locale = fr-FR > mardi 10 mars 2020
culture locale = de > mardi, 10. mars 2020
culture locale = en-GB > 10 mars 2020

如何用他们的语言拼写第 name/month 天的名字? (例如 en-gb 应该给出 2020 年 3 月 10 日)

Get-Date -Format 不接受实际的格式提供程序,只接受裸格式字符串。

使用 DateTime.ToString() 完全应用另一种文化:

(Get-Date).ToString($culture.DateTimeFormat.LongDatePattern, $culture)

如果您想要在其他语言环境中自定义日期,ToString 接受格式和文化。

$l1 =  'fr-FR' , 'de' , 'en-GB'

foreach ( $letter in $l1 ) {
    $culture = New-Object System.Globalization.CultureInfo($letter)
    $date = (Get-Date).ToString($culture.DateTimeFormat.LongDatePattern, $culture)
    echo ('culture locale 2= ' + $letter + ' > ' + $date )
    $date = (Get-Date).ToString("dddd d MMMM H \Hr. m \min.", $culture)
    echo ('culture locale 3= ' + $letter + ' > ' + $date )

    }

给予

culture locale 2= fr-FR > mardi 10 mars 2020
culture locale 3= fr-FR > mardi 10 mars 15 Hr. 30 min.
culture locale 2= de > Dienstag, 10. März 2020
culture locale 3= de > Dienstag 10 März 15 Hr. 30 min.
culture locale 2= en-GB > 10 March 2020
culture locale 3= en-GB > Tuesday 10 March 15 Hr. 30 min.