是否可以比较2个自定义日期。我正在尝试检查变量是否保持date1是否小于date2,如果是,报告说date1是旧日期。
我从a获得两个日期。日志文件中的date1和应用程序本身的日期2
现在,date1和date2都是必需的格式,即
$Date1 = Tue,Aug 16, 2016 12:40:03
$Date2 = Mon,Aug 22, 2016 16:33:02
我的下一步是比较这两个日期,并报告date1是旧日期与Date2比较,我不知道如何继续..非常感谢任何帮助/想法。
感谢Pete和Ansgar Wiechers
更新了工作代码:
$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
答案 0 :(得分:2)
如果字符串排序顺序与日期排序顺序相同,则只能比较日期字符串。例如,ISO格式的日期字符串具有可比性:
2016-08-16T12:40:03 2016-08-22T16:33:02
自定义格式的日期字符串不是,因为T
位于M
之后,但8月16日实际上应该是8月22日之前:
Tue,Aug 16, 2016 12:40:03 Mon,Aug 22, 2016 16:33:02
如果您没有ISO格式的日期字符串,通常最好将它们解析为实际的DateTime
值(建议为@PetSerAl),特别是如果您的参考值最初原来是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) {
...
}