如何将日期和时间与边距进行比较

How to Compare Date and Time With Margin

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

2/2/2020 09:04:22 AM

最好的方法是什么
  1. 将 TimeCreated 转换为更有用的东西(也不使用 AM/PM),以及
  2. 对时间为 +/- 两分钟的事件进行比较(基本上是根据上下文查找)?

换句话说,它将 return 个具有以下 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

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

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