在Ruby 2.1.2,我可以成功地比較Time.parse
和Time.utc
在同一時間的結果,它返回預期true
:爲什麼某些時間比較具有違反直覺的結果?
Time.parse("2015-02-09T22:38:43Z") == Time.utc(2015, 2, 9, 22, 38, 43)
=> true
然而,這同樣比較直覺相反返回false
當第二值不是一個整數:
Time.parse("2015-02-09T22:38:43.1Z") == Time.utc(2015, 2, 9, 22, 38, 43.1)
=> false
儘管這是一個事實,即第二值依然是整數,但仍相當於:
Time.parse("2015-02-09T22:38:43.1Z").sec
=> 43
Time.utc(2015, 2, 9, 22, 38, 43.1).sec
=> 43
Time.parse("2015-02-09T22:38:43.1Z").sec == Time.utc(2015, 2, 9, 22, 38, 43.1).sec
=> true
而且,比較結果在true
的相同方法連續調用之間:
Time.parse("2015-02-09T22:38:43.1Z") == Time.parse("2015-02-09T22:38:43.1Z")
=> true
Time.utc(2015, 2, 9, 22, 38, 43.1) == Time.utc(2015, 2, 9, 22, 38, 43.1)
=> true
爲什麼會這樣呢?這是一個錯誤,還是我錯過了什麼?
請更改您的措辭。這是誤導/混亂。如果您聲稱比較失敗,那麼它並不是失敗,它正在成功並正在返回'false'。 – sawa 2015-02-11 18:04:01
這似乎是一個純粹的Ruby問題,在這種情況下,您應該刪除對Rails的所有引用,特別是Rails標記。 – 2015-02-11 18:47:26