不久前,我深入研究了Ruby的类时间之间的差异。经过询问,我得出的结论是,使用DateTime没有充分的理由。
这个问题本质上与上面提出的问题相反:
为什么DateTime
最初被添加到stdlib中,而Date和Time可以做得很好,甚至更好?谁真正使用DateTime(以及为了什么),以便它在stdlib中继续占有一席之地?
DateTime是作为Rails的一个东西而普及的,它是为了包装数据库中等效的DATETIME
列而创建的。就日期范围而言,这些列比Time
灵活得多,因此需要一种新的类型来捕获所有可能的值。在Ruby 1.8.6和1.8.7的早期版本中,时间被限制在标准的1901-2038范围内,内部表示为无符号长(32位)数字。
现在,虽然Rails中的大多数时间计算方法都只是DateTime,但差异大多很小。
我真的不会担心你使用DateTime或Time中的哪一个,除非你有特别好的理由喜欢其中一个。如果您从Rails中获取DateTime对象,请按照流程使用这些对象。如果您正在构建自己的Ruby应用程序,您可以随心所欲。