我可以格式化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的右边 运营商”
当前回答
根据输出需要格式化日期和时间
如果要格式化日期并将字符串分配给变量。 我结合了PowerShell和. net来提供灵活性。
$oDate = '{0}' -f ([system.string]::format('{0:yyyyMMddHHmmss}',(Get-Date)))
这是如何工作的
PowerShell Operator - '{0}' -f (.....) .NET表示法- [system.string]::format('customformat',InputObject) 结合PowerShell和。net的自定义格式- '{0:yyyyMMddHHmmss}' PowerShell提供的输入对象cmdlet (Get-Date) 存储在PowerShell变量- $oDate中
例子
如果运行的日期和时间是2021年7月5日星期一5:45:22 PM(格式“{0:F}”)。
$oDate = 20210705174522
使用代码
您可以通过使用Microsoft . net自定义日期时间符号修改'yyyMMddHHmmss'来定制字符串以满足您的要求。
其他回答
如果你绝对需要使用-Format选项,那么就这样做:
$dateStr = Get-Date $date -Format "yyyMMdd"
然而
$dateStr = $date.toString('yyyMMdd')
可能更有效率…:)
一个简单而又好的方法是:
$time = (Get-Date).ToString("yyyy:MM:dd")
根据输出需要格式化日期和时间
如果要格式化日期并将字符串分配给变量。 我结合了PowerShell和. net来提供灵活性。
$oDate = '{0}' -f ([system.string]::format('{0:yyyyMMddHHmmss}',(Get-Date)))
这是如何工作的
PowerShell Operator - '{0}' -f (.....) .NET表示法- [system.string]::format('customformat',InputObject) 结合PowerShell和。net的自定义格式- '{0:yyyyMMddHHmmss}' PowerShell提供的输入对象cmdlet (Get-Date) 存储在PowerShell变量- $oDate中
例子
如果运行的日期和时间是2021年7月5日星期一5:45:22 PM(格式“{0:F}”)。
$oDate = 20210705174522
使用代码
您可以通过使用Microsoft . net自定义日期时间符号修改'yyyMMddHHmmss'来定制字符串以满足您的要求。
和在。net中一样:
$DateStr = $Date.ToString("yyyyMMdd")
Or:
$DateStr = '{0:yyyyMMdd}' -f $Date
如果你在cmd.exe中使用这个(在批处理文件中):
powershell -Command (Get-Date).ToString('yyyy-MM-dd')