我有一个数组列表,其中包含如下所示的字符串
2017年2月17日 2017年2月28日 2017年1月3日
我想将其转换为yyyyMMdd格式,以便我可以将这些日期与当前日期进行比较。我尝试过使用ParseExact,但它没有用。
`
答案 0 :(得分:1)
可能取决于您的语言环境,但请从以下内容开始:
$d,$m,$y = "28.2.2017" -split "\."
$date = [DateTime]::Parse($("{0}/{1}/{2}" -f $m, $d, $y))
$date.ToString("yyyyMMdd")
根据需要进行调整以使用阵列。
答案 1 :(得分:1)
#you can format string to date like this
[DateTime]::ParseExact("17.2.2017", 'd.M.yyyy', $null)
#for your string with all dates
$dates="17.2.2017 28.2.2017 11.03.2017"
-split $dates | %{[System.DateTime]::ParseExact($_, 'd.M.yyyy', $null)}
答案 2 :(得分:0)
您可以尝试:
$a ="17.2.2017 28.2.2017 1.3.2017"
$a -split ' ' | % {$b = $_ -split '\.'; Get-Date -Day $b[0] -Month $b[1] -Year $b[2]}
如果你有一系列日期,你只需删除第一个分割:
$a ="17.2.2017","28.2.2017","1.3.2017"
$a | % {$b = $_ -split '\.'; Get-Date -Day $b[0] -Month $b[1] -Year $b[2]}
仅限一个日期:
$a ="17.2.2017"
$b = $a -split '\.'
$date = Get-Date -Day $b[0] -Month $b[1] -Year $b[2]}
$sate.ToString("yyyyMMdd")
答案 3 :(得分:0)
$d,$m,$y='28.2.2017'.split('.')
'0'*(4-$y.length)+$y+'0'*(2-$m.length)+$m+'0'*(2-$d.length)+$d
答案 4 :(得分:0)
这就是我所做的&有用。
$Date1 = -split $Date | %{[System.DateTime]::ParseExact($_, 'd.M.yyyy', $null)}
$Date2 = $Date1.ToString("yyyyMMdd")