可以直接比较DateTime
和Date
:
d = Date.new(2016, 6, 27)
dt = DateTime.new(2016, 6, 22, 10, 12, 11)
d > dt # => true
d <= dt # => false
但是,使用==
运算符检查DateTime
的日期是否与某些Date
相同,即使它们具有相同的日期,也始终返回false:
d = Date.new(2016, 6, 27)
dt = DateTime.new(2016, 6, 27, 10, 20, 59)
d == dt # => false
d >= dt # => false
d < dt # => true
我认为,在这种情况下,d
将被强制转换为等同于DateTime.new(2016, 6, 27, 0, 0, 0)
,这可以解释d < dt
是否为真。
那么,如何检查dt
与d
的日期是否相同?
答案 0 :(得分:7)
在制定问题时,我认为DateTime
应该有一个方法来单独获取其日期部分。我找了它然后找到了DateTime#to_date
:
d == dt.to_date # => true
也应该发布答案,因为我在谷歌上找不到直接的结果。