Ruby日期方程没有返回预期的真值

Vic*_*r S 5 ruby ruby-on-rails date

为什么以下不同?

Time.now.end_of_day      == Time.now.end_of_day - 0.days      # false
Time.now.end_of_day.to_s == Time.now.end_of_day - 0.days.to_s # true
Run Code Online (Sandbox Code Playgroud)

Mis*_*cha 4

因为纳秒数不同:

ruby-1.9.2-p180 :014 > (Time.now.end_of_day - 0.days).nsec
 => 999999000 
ruby-1.9.2-p180 :015 > Time.now.end_of_day.nsec
 => 999999998 
Run Code Online (Sandbox Code Playgroud)