我运行一个PowerShell脚本,该脚本传递了一个参数,例如“20160428”。

我需要将其格式化为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”替换“Get-Date”,它就会打印出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

它只是说字符串不是有效的日期时间,这似乎是根本原因。

我怎样才能解决这个问题?

最佳答案

$Input = "20160428"
Get-Date -Year $Input.Substring(0,4) -Month $Input.Substring(4,2) -Day $Input.Substring(6,2) -Format "yyMMdd"

关于date - PowerShell-将日期格式化为yyMMdd格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36919045/

10-10 20:03