如何检查DateTime的日期是否等于某个特定日期

时间:2016-06-29 03:30:17

标签: ruby

可以直接比较DateTimeDate

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是否为真。

那么,如何检查dtd的日期是否相同?

1 个答案:

答案 0 :(得分:7)

在制定问题时,我认为DateTime应该有一个方法来单独获取其日期部分。我找了它然后找到了DateTime#to_date

d == dt.to_date  # => true

也应该发布答案,因为我在谷歌上找不到直接的结果。