Вопрос:

Преобразование нечетного формата в [datetime] в powershell

.net powershell datetime

499 просмотра

2 ответа

6 Репутация автора

Я пишу что-то, чтобы получить дату установки для определенной программы, но я не могу преобразовать число, которое возвращается в странный формат даты (yyyyMMdd). Я попытался привести его к [datetime], но это возвращает ошибку ниже.

Это может быть легко исправить, но это то, с чем я еще не сталкивался. Может кто-нибудь помочь, пожалуйста?

Заранее спасибо!

$test = Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -eq 'exampleProgram'} | select installdate

 

[datetime]$test.installdate
Cannot convert value "20160628" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."
At line:1 char:1
+ [datetime]$test.installdate
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvalidCastParseTargetInvocationWithFormatProvider`
Автор: Chris Blackden Источник Размещён: 22.08.2016 08:23

Ответы (2)


2 плюса

8087 Репутация автора

Учитывая вашу дату "20160628" Попробуйте:

[datetime]::ParseExact($Date,"yyyyMMdd",$null)

и вы получите:

Tuesday, June 28, 2016 12:00:00 AM
Автор: Micky Balladelli Размещён: 22.08.2016 08:53

2 плюса

3166 Репутация автора

Вам нужно проанализировать дату в переменной, используя invariant cultureInfo и пользовательский формат:

$DateTimeVariable = [DateTime]::ParseExact("20160628", "yyyyMMdd", System.Globalization.CultureInfo]::InvariantCulture)

или же

$DateTimeVariable = [DateTime]::ParseExact($test.installdate, "yyyyMMdd", System.Globalization.CultureInfo]::InvariantCulture)
Автор: Austin T French Размещён: 22.08.2016 08:53
Вопросы из категории :
32x32