如何将 Get-WinEvent 的 TimeCreated 转换为 yyyy-MM-dd-hh-mm-ss 格式?

How to convert Get-WinEvent's TimeCreated to yyyy-MM-dd-hh-mm-ss format?

在 Windows 7 上的 PowerShell 2.0 中,我可以按如下方式格式化 time/date 格式:

Get-Date -format yyyy-MM-dd-HH-mm-ss

输出为:

2016-06-07-01-04-16

但现在我有以下命令:

Get-WinEvent -max 1 | Select-Object TimeCreated, Id

输出为:

7.6.2016 13:01:46   444

注意:444 是 Id 列,在我们的例子中并不重要。

如何用yyyy-MM-dd-HH-mm-ss格式化得到:

2016-06-07-13-01-46 444

一种方法是:

Get-WinEvent -max 1 | Select-Object TimeCreated, Id,
    @{Name='SpecialDate';Expression={$_.TimeCreated.ToString('yyyy-MM-dd-HH-mm-ss')}}

生成:

TimeCreated : 7/06/2016 13:21:17
Id          : 4648
SpecialDate : 2016-06-07-13-21-17

使用 Get-Member 您可以找到 CmdLet 的所有可能性(方法、属性、..):

Get-Date | Get-Member

通过 Get-Help 您可以了解如何使用 CmdLet:

Get-Help Select-Object -Examples

希望这对您有所帮助。

您可以使用 calculated property:

Get-WinEvent -max 1 | Select-Object  @{name='TimeCreated'; expression={$_.TimeCreated.ToString("yyyy-MM-dd-hh-mm-ss")}}, Id