为什么这是假的?日期时间比较

时间:2019-05-11 06:34:57

标签: powershell datetime if-statement comparison

我正在尝试比较一些日期时间字符串,但不确定为什么这是错误的?

PS> ( (get-date -f 'G') -gt ($ZeroHundred) -and (get-date -f 'G') -lt ($OFourHundred) )
False

PS> get-date -f 'G'
5/11/2019 1:20:53 AM

PS> $ZeroHundred
5/11/2019 12:00:00 AM

PS> $OFourHundred
5/11/2019 4:00:00 AM

PS> (get-date -f 'G').GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                                         
-------- -------- ----                                     --------                                                                                                                                         
True     True     String                                   System.Object                                                                                                                                    



PS> $ZeroHundred.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                                         
-------- -------- ----                                     --------                                                                                                                                         
True     True     String                                   System.Object                                                                                                                                    



PS> $OFourHundred.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                                         
-------- -------- ----                                     --------                                                                                                                                         
True     True     String                                   System.Object                                                                                                                                    


当我将其分解时,我明白了为什么,但是我不明白为什么:

PS> (get-date -f 'G') -lt ($OFourHundred)
True

PS> (get-date -f 'G') -gt ($ZeroHundred)
False

不是5/11/2019 1:20:53 AM大于5/11/2019 12:00:00 AM ???

现在,突然间,是真的吗?

PS> ( (get-date -f 'G') -gt ($ZeroHundred) -and (get-date -f 'G') -lt ($OFourHundred) )
True

PS> get-date -f 'G'
5/11/2019 2:10:53 AM

PS> $ZeroHundred
5/11/2019 12:00:00 AM

PS> $OFourHundred
5/11/2019 4:00:00 AM

0 个答案:

没有答案