如何在powershell v2.0中比较两个自定义日期

如何在powershell v2.0中比较两个自定义日期,powershell,powershell-2.0,Powershell,Powershell 2.0,是否可以比较两个自定义日期。我正在尝试检查持有date1的变量是否小于date2,如果是,报告会说date1是较早的日期 我两个约会都是从a。日志文件中的日期1和应用程序本身中的日期2 现在,date1和date2都是必需的格式,即 $Date1 = Tue,Aug 16, 2016 12:40:03 $Date2 = Mon,Aug 22, 2016 16:33:02 我的下一步是比较这两个日期,并报告date1是否比Date2早,我不知道如何继续。。非常感谢您的任何帮助/想法 多亏了皮特和

是否可以比较两个自定义日期。我正在尝试检查持有date1的变量是否小于date2,如果是,报告会说date1是较早的日期

我两个约会都是从a。日志文件中的日期1和应用程序本身中的日期2

现在,date1和date2都是必需的格式,即

$Date1 = Tue,Aug 16, 2016 12:40:03
$Date2 = Mon,Aug 22, 2016 16:33:02
我的下一步是比较这两个日期,并报告date1是否比Date2早,我不知道如何继续。。非常感谢您的任何帮助/想法

多亏了皮特和安斯加·威彻斯

更新的工作代码:

$Date1DateTime = [DateTime]::ParseExact($Date1,'ddd,MMM d, yyyy, HH:mm:ss',[Globalization.CultureInfo]::InvariantCulture); $Date2DateTime = [DateTime]::ParseExact($Date2,'ddd,MMM d, yyyy, HH:mm:ss',[Globalization.CultureInfo]::InvariantCulture); $Date1DateTime -lt $Date2DateTime

如果字符串排序顺序与日期排序顺序相同,则只能比较日期字符串。例如,ISO格式的日期字符串具有可比性:

2016-08-16T12:40:03 2016-08-22T16:33:02 如果您没有ISO格式的日期字符串,通常最好将其解析为实际的
DateTime
值(如建议的),特别是如果您的参考值最初是
DateTime

$fmt     = 'ddd,MMM d, yyyy, HH:mm:ss'
$culture = [Globalization.CultureInfo]::InvariantCulture

$Date1 = Get-Date $LogFileDate
$val   = (b2b.exe -readparams $param | Select-Object -Skip 1 -First 1) -split '='
$Date2 = [DateTime]::ParseExact($val[1], $fmt, $culture)

if ($Date1 -lt $Date2) {
  ...
}

$Date1DateTime=[DateTime]::ParseExact($Date1,'ddd,mmmd,yyyy,HH:mm:ss',[CultureInfo]::InvariantCulture)$Date2DateTime=[DateTime]::ParseExact($Date2,'ddd,MMM d,yyyy,HH:mm:ss',[CultureInfo]::InvariantCulture)$Date1DateTime-lt$Date2DateTime
您可能需要修复
[CultureInfo]
,因为在PowerShell v2中它不是有效的类型加速器。谢谢PetSerAI。我使用了[Globalization.CultureInfo]::Ansgar提到的不变量文化。成功了。
$fmt     = 'ddd,MMM d, yyyy, HH:mm:ss'
$culture = [Globalization.CultureInfo]::InvariantCulture

$Date1 = Get-Date $LogFileDate
$val   = (b2b.exe -readparams $param | Select-Object -Skip 1 -First 1) -split '='
$Date2 = [DateTime]::ParseExact($val[1], $fmt, $culture)

if ($Date1 -lt $Date2) {
  ...
}