比较2个DateTime实例,它给我错误的结果

时间:2018-11-25 21:25:38

标签: ruby datetime

我有2个DateTime实例

today = Sun, 25 Nov 2018 18:59:00 -0500
tomorrow = Mon, 26 Nov 2018 00:00:00 GMT +00:00

当我这样做

today >= tomorrow

它是错误的,这是正确的

当我这样做

today + 1.minute >= tomorrow

结果正确,这是不正确的。当11月25日少于11月26日时,为什么这样做?以某种方式只计算时间而不计算日期吗?如果是,我该如何解决?

1 个答案:

答案 0 :(得分:1)

请注意,todaytomorrow处于不同的时区。将1.minute添加到today时,两个值都相同。因此,==返回true

2.5.3 :001 > today = DateTime.parse('Sun, 25 Nov 2018 18:59:00 -0500')
 => Sun, 25 Nov 2018 18:59:00 -0500
2.5.3 :002 > tomorrow = DateTime.parse('Mon, 26 Nov 2018 00:00:00 GMT +00:00')
 => Mon, 26 Nov 2018 00:00:00 +0000
2.5.3 :003 > today >= tomorrow
 => false
2.5.3 :004 > today + 1.minute
 => Sun, 25 Nov 2018 19:00:00 -0500
2.5.3 :005 > today + 1.minute >= tomorrow
 => true
2.5.3 :006 > today + 1.minute == tomorrow
 => true