2015-10-14 2 views
0

В настоящее время я пытаюсь преобразовать дату из той, что отображается в regedit, в формат readable datetime. Но я не знаю, как это сделать, я работаю со следующим:Форматирование дат в PowerShell

.GetValue («») InstallDate

И в файле .csv, он отображает ее в следующем: 20150914

Как я мог бы преобразовать это в удобочитаемую дату?

+0

Было бы полезно, если вы отправил весь код, где вы берете значение из реестра и помещаете его в csv (не то, что я не знаю, как это сделать, мне больше любопытно, как вы это делаете) – Santhos

ответ

1

попробовать

[datetime]::Parseexact("20150914","yyyyMMdd", $null ) 
0

PowerShell Дата только .NET DateTime. Проверьте DateTime.ParseExact.

[DateTime]::ParseExact("20151010", "yyyyMMdd", [CultureInfo]::InvariantCulture) 
+0

Где я могу это разместить? - это полная строка: ($ RegBase.OpenSubKey ("ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ $ _")). GetValue ('InstallDate') –

1

Я не знаю, почему вы проголосовали вниз другой ответ, потому что он находится прямо на деньги с [Datetime]::ParseExact вам придется иметь дело с нулевыми значениями, хотя

$Regbase = Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ 
    foreach ($entry in $regBase) 
    { 
    $date = (Get-ItemProperty HKLM:\$entry | select installdate).installdate 
     try 
     { 
      [DateTime]::ParseExact($date, "yyyyMMdd", [CultureInfo]::InvariantCulture) 
     } 
     catch [exception] 
     { 
      "Date Value: $date" 
     } 
    } 
Смежные вопросы