将 Get-Date 与日期作为字符串进行比较

PnP*_*PnP 3 powershell

注册表包含一个键,其字符串值类似于:

23-01-2015 14-58-00
Run Code Online (Sandbox Code Playgroud)

使用 PowerShell,我需要比较此日期以确保它大于从(Get-Date).AddDays(-1). 但是格式不同,我无法在两者之间进行比较,也无法格式化 Get-Date,因为无法.AddDays针对字符串运行。有任何想法吗?

Ant*_*ace 5

您需要使用ParseExact

[datetime]::ParseExact("23-01-2015 14-58-00","dd-MM-yyyy HH-mm-ss",$null)

Friday, January 23, 2015 2:58:00 PM
Run Code Online (Sandbox Code Playgroud)

这会输出一个 DateTime 对象。"dd-MM-yyyy HH-mm-ss"是到您所需的日期时间格式的特定映射,使用年、月、日等的日期时间格式占位符。如果我没有假设正确的格式占位符,只需单击上面的链接即可找到您想要的占位符。

然后,您可以按预期比较两个 DateTime 对象:

$myDate = [datetime]::ParseExact("23-01-2015 14-58-00","dd-MM-yyyy HH-mm-ss",$null)
$myDate -gt (Get-Date).AddDays(-1)
True
Run Code Online (Sandbox Code Playgroud)