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

Rom*_*rio 3 ruby

可以直接比较DateTimes和Dates:

d = Date.new(2016, 6, 27)
dt = DateTime.new(2016, 6, 22, 10, 12, 11)

d > dt   # => true
d <= dt  # => false
Run Code Online (Sandbox Code Playgroud)

但是,使用==运算符检查DateTimes日期是否与某些日期相同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
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我认为d将被强制转换为等效的DateTime.new(2016, 6, 27, 0, 0, 0),这可以解释d < dt为真.

那么,我该如何检查是否dt与日期相同d

Rom*_*rio 7

在制定问题时,我认为DateTime应该有一种方法来单独获取其日期部分.我寻找它然后我发现DateTime#to_date:

d == dt.to_date  # => true
Run Code Online (Sandbox Code Playgroud)

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