第1、2、2、4格式的Powershell获取日期

Dis*_*ame 3 powershell

我正在尝试date在PowerShell中将a DayOfWeek Month Day(st|nd|rd|th) year格式化为格式。

(Get-Date).AddDays(+1).ToString('D')
Run Code Online (Sandbox Code Playgroud)

输出为“ 2016年7月5日,星期二 ”,但需要使用以下格式:2016年7月5日,星期二

if date(Get-Date) % 100 IN (11, 12, 13) THEN 'th'
    if (Get-Date) % 10 = 1 THEN 'st'
    if (Get-Date) % 10 = 2 THEN 'nd'
    if (Get-Date) % 10 = 3 THEN 'rd'
Run Code Online (Sandbox Code Playgroud)

DAX*_*lic 5

一种可能的解决方案可能是这样的

function Get-DateOrdinalSuffix([datetime]$Date) {
    switch -regex ($Date.Day.ToString()) {
        '1(1|2|3)$' { 'th'; break }
        '.?1$'      { 'st'; break }
        '.?2$'      { 'nd'; break }
        '.?3$'      { 'rd'; break }
        default     { 'th'; break }
    }
}

$d = (Get-Date).AddDays(1)
$suffix = Get-DateOrdinalSuffix $d
$dateFormatted = "{0} {1:MMMM} {2}{3} {4}" -f $d.DayOfWeek, $d, $d.Day, $suffix, $d.Year
Run Code Online (Sandbox Code Playgroud)