我运行一个PowerShell脚本传递参数,例如“20160428”PowerShell的 - 格式化日期YYMMDD格式
我需要的是格式为YYMMDD本(即获得“160428”的结果)。我可以删除“20”,但我希望得到这个权利。对于这样的我这样做了很多尝试,如:
#$COBDATE= '{0:yyMMdd}' -f $COBDATE
#$COBDATE = ([datetime]::ParseExact($COBDATE, "yyMMdd", [System.Globalization.CultureInfo]::InvariantCulture)).DayOfWeek
,最后一个:
$COBDATE = ("{0:yyMMdd}" -f [datetime]::parse($COBDATE))
下面的作品,但一旦我代替我的时间“获取最新”,“20160428”它只是打印出yyMMdd字符串。
$b = (Get-Date).AddDays(-1).ToString("yyMMdd")
所以,如果我试试这个:
$input = "20160428"
$format = "yyMMdd"
$input_toDate_up = [DateTime]::ParseExact($input, $format, $null).ToString($format)
$input_toDate_up
它只是说该字符串不是有效的日期时间,这似乎是根本原因。
请帮忙吗?
正如ssaviers提到的,您还应该使用$ Input之外的变量来避免冲突。 – APB
在我的情况下,我添加了将参数转换为字符串之前($ cobdate = [string] $ cobdate,但之后,它完美的工作,谢谢! – Tiago
什么类型之前铸造到一个字符串?如果$ cobdate已经是一个日期时间对象,你可以简单地执行Get-Date -Date $ cobdate -Format“yyMMdd” – APB