如何将日期和时间与边距进行比较
How to Compare Date and Time With Margin
我想从 Windows 事件日志中获取一个 TimeCreated 字符串值,将其转换为可用的日期时间对象,然后搜索所有匹配的事件直到分钟 +/- 比如说,两分钟: Get-WinEvent returns 像这样的日期和时间:
2/2/2020 09:04:22 AM
最好的方法是什么
- 将 TimeCreated 转换为更有用的东西(也不使用 AM/PM),以及
- 对时间为 +/- 两分钟的事件进行比较(基本上是根据上下文查找)?
换句话说,它将 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") }
我想从 Windows 事件日志中获取一个 TimeCreated 字符串值,将其转换为可用的日期时间对象,然后搜索所有匹配的事件直到分钟 +/- 比如说,两分钟: Get-WinEvent returns 像这样的日期和时间:
2/2/2020 09:04:22 AM
最好的方法是什么
- 将 TimeCreated 转换为更有用的东西(也不使用 AM/PM),以及
- 对时间为 +/- 两分钟的事件进行比较(基本上是根据上下文查找)?
换句话说,它将 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") }