Выходные данные команды PowerShell преобразуются в дату и время

Как можно преобразовать выходные данные команды PowerShell, которая извлекает некоторую дату/время, например, в удобочитаемую строку даты/времени? Команда

((Get-ComputerRestorePoint)[-1]).CreationTime

Что в основном извлекает дату и время создания последней точки восстановления, но в странном формате, например 20190109100614.556883-000.


person erma86    schedule 10.01.2019    source источник


Ответы (2)


Преобразование можно выполнить с помощью объекта RestorePoint. Вот так,

$rp=((Get-ComputerRestorePoint)[-1])
$rp.ConvertToDateTime($rp.CreationTime).ToString("u")

# Result
2019-01-08 08:24:24Z

Формат u: универсальный сортируемый разделитель, альтернатив тоже немало.

person vonPryz    schedule 10.01.2019

причина, по которой ваша предыдущая попытка не удалась, заключается в том, что вы подошли к ней логически вместо того, чтобы использовать временную метку WMI. [ухмылка] это работает...

#requires -RunAsAdministrator

$RPCreationTime = (Get-ComputerRestorePoint)[-1]
$RPCreationTime = $RPCreationTime.ConvertToDateTime($RPCreationTime.CreationTime)

# the Out-Host is needed to avoid the display system trying to combine the two items
$RPCreationTime.GetType() | Out-Host
$RPCreationTime 

выход ...

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     DateTime                                 System.ValueType


2019 January 09, Wednesday 3:00:13 AM
person Lee_Dailey    schedule 10.01.2019