首页 > 解决方案 > 如何比较日期和时间与保证金

问题描述

我想从 Windows 事件日志中获取 TimeCreated 字符串值,将其转换为可用的日期时间对象,然后搜索所有匹配的事件直到分钟 +/- 说,两分钟:Get-WinEvent 返回日期和时间像这样:

2/2/2020 09:04:22 AM

什么是最好的方法

  1. 将 TimeCreated 转换为更有用的东西(也不使用 AM/PM),并且
  2. 对时间为 +/- 两分钟的事件进行比较(基本上从上下文来看)?

换句话说,它将返回具有以下 TimeCreated 值的事件:

2/2/2020 09:03:27 AM
2/2/2020 09:02:24 AM
2/2/2020 09:05:22 AM

但是,如果 TimeCreated 是以下任何一种,它将不匹配(超出 +/- 两分钟):

2/2/2020 09:06:27 AM
2/2/2020 09:02:20 AM
2/2/2020 09:08:22 AM

标签: powershellpowershell-2.0powershell-3.0powershell-4.0

解决方案


看起来一个简单的方法是使用 Where-Object 和 -lt/-gt 运算符:

| ?{ $_.TimeCreated -lt ($event.TimeCreated + "00:02") -and $_.TimeCreated -gt ($event.TimeCreated + "-00:02") }

推荐阅读