Я пробовал много разных способов, и я не могу понять, как это правильно.Изменить формат даты с "yyyymmdd" на "mm/dd/yyyy"
Вот код того, что я пытался до сих пор ...
[String]$dateValue = '20161212'
[String]$dateStamp = $dateValue -f (Get-Date)
[String]$dateStamp2 = ([datetime]::parseexact($dateValue,"yyyyMMdd",[System.Globalization.CultureInfo]::InvariantCulture)).Date
[String]$dateStamp3 = ([datetime]::FromFileTime($dateValue)).ToString('g')
Write-Host '$dateStamp =' $dateStamp
Write-Host '$dateStamp2 =' $dateStamp2
Write-Host '$dateStamp3 =' $dateStamp3
Текущий код выхода
$dateStamp = 20161212
$dateStamp2 = 12/12/2016 00:00:00
$dateStamp3 = 12/31/1600 5:00 PM
Желаемая код выхода
$dateStamp = 12/12/2016
Любые идеи?
'$ dateStamp2' кажется правильным. Как вы собираетесь придумывать 3:00 PM, когда эта информация не находится в исходной строке? –
$ dateStamp3' совершенно не так, потому что вы не начинаете с FileTime, и поэтому вы не можете получить то, что хотите от 'FromFileTime' (это должно быть ясно, читая имя метода). Откуда это воображаемое время исходит из того, что вы хотите получить? Вы никогда не назначали его при инициализации '$ dateValue'; Ожидаете ли вы 3:00 вечера только волшебным образом? –
TBH, я не думал о том, как обращаться с hh: mm. Я думаю, что фактическое время не имеет значения, поскольку оно не предусмотрено, но формат должен по крайней мере быть «**/**/****». Я обновил вопрос, чтобы исключить HH: MM. –