我可以格式化Get-Date cmdlet这样没有问题:
$date = Get-Date -format "yyyyMMdd"
但是,一旦我在变量中获得了日期,我该如何格式化它呢?下面的声明
$dateStr = $date -format "yyyMMdd"
返回以下错误:
“你必须提供价值表达 在-f的右边 运营商”
我可以格式化Get-Date cmdlet这样没有问题:
$date = Get-Date -format "yyyyMMdd"
但是,一旦我在变量中获得了日期,我该如何格式化它呢?下面的声明
$dateStr = $date -format "yyyMMdd"
返回以下错误:
“你必须提供价值表达 在-f的右边 运营商”
当前回答
如果你绝对需要使用-Format选项,那么就这样做:
$dateStr = Get-Date $date -Format "yyyMMdd"
然而
$dateStr = $date.toString('yyyMMdd')
可能更有效率…:)
其他回答
一个简单而又好的方法是:
$time = (Get-Date).ToString("yyyy:MM:dd")
来自@stej的回答非常翔实,但这里是一个简短的回答: 在其他选项中,您有3个简单的选项来格式化[System. System.]存储在变量中的DateTime:
将变量传递给Get-Date cmdlet: 获取日期-格式“HH:mm”$date 使用toString()方法: date.ToString美元(“HH: mm”) 使用复合格式: "{0:HH:mm}" -f $date
和在。net中一样:
$DateStr = $Date.ToString("yyyyMMdd")
Or:
$DateStr = '{0:yyyyMMdd}' -f $Date
对于任何试图格式化当前日期以用于HTTP报头的人,请使用“r”格式(RFC1123的缩写),但请注意警告…
PS C:\Users\Me> (get-date).toString("r")
Thu, 16 May 2019 09:20:13 GMT
PS C:\Users\Me> get-date -format r
Thu, 16 May 2019 09:21:01 GMT
PS C:\Users\Me> (get-date).ToUniversalTime().toString("r")
Thu, 16 May 2019 16:21:37 GMT
例如,不要忘记使用“tuniversal()”
你可以做的一件事是:
$date.ToString("yyyyMMdd")