Ruby日期今天? - 意外的行为

JP.*_*JP. 4 ruby ruby-on-rails date

我是Ruby的新手,我想弄清楚为什么以下不能按预期工作:

2.2.1 :010 > user_date = Date.today
 => Sun, 31 May 2015 
2.2.1 :011 > user_date.today?
 => false 
Run Code Online (Sandbox Code Playgroud)

我正在使用Rails控制台并且命令一个接一个地执行(执行之间可能有一秒钟).我确定我不理解,但不应该第二个命令返回true而不是false?如果没有,为什么?提前致谢!

编辑#1 - Arup要求的附加信息

 2.2.1 :013 > puts user_date.method(:today?).owner
DateAndTime::Calculations
 => nil 
Run Code Online (Sandbox Code Playgroud)

编辑#2 - 所以我有预感.我在美国东部时间,当我遇到原始问题时,它已经到了午夜.我等了午夜,现在以下工作.

2.2.1 :004 > user_date = Date.today
 => Mon, 01 Jun 2015 
2.2.1 :005 > user_date.today?
 => true 
Run Code Online (Sandbox Code Playgroud)

fyl*_*ooi 7

Date.today属于核心Ruby而today?属于Rails.

在引擎盖下,today?呼叫Date.current(Rails也是)而不是Date.today.

更进一步,我们发现Date.current如果配置了当前的Rails时区,则将其考虑在内.这应该是你不匹配的根源.