不久前,我深入挖掘differences between Ruby's time-like classes。在四处询问之后,我得出的结论是,没有充分理由使用DateTime 。
这个问题基本上与上面提到的问题相反:
为什么DateTime
最初添加到stdlib时,日期和时间可以做得很好,更好?谁实际上使用DateTime(以及什么),以便它继续在stdlib中占有一席之地?
答案 0 :(得分:1)
DateTime被推广为Rails,它创建它以包裹数据库中的等效DATETIME
列。这些列在日期范围方面比Time
灵活得多,因此需要新类型来捕获所有可能的值。在Ruby 1.8.6中,1.8.7倍的早期版本仅限于标准的1901-2038范围,内部表示为无符号长(32位)数字。
现在差异主要是次要的,尽管在Rails中,大多数时候计算方法只是DateTime。
我真的不担心你使用DateTime或Time中的哪一个,除非你有一个特别好的理由偏好一个而不是另一个。如果您从Rails获取DateTime对象,请使用流程并使用它们。如果您正在构建自己的Ruby应用程序,那么您可以随心所欲。