为什么Ruby的stdlib有一个DateTime类?

时间:2013-02-11 03:40:35

标签: ruby datetime

不久前,我深入挖掘differences between Ruby's time-like classes。在四处询问之后,我得出的结论是,没有充分理由使用DateTime

这个问题基本上与上面提到的问题相反:

为什么DateTime最初添加到stdlib时,日期和时间可以做得很好,更好?谁实际上使用DateTime(以及什么),以便它继续在stdlib中占有一席之地?

1 个答案:

答案 0 :(得分:1)

DateTime被推广为Rails,它创建它以包裹数据库中的等效DATETIME列。这些列在日期范围方面比Time灵活得多,因此需要新类型来捕获所有可能的值。在Ruby 1.8.6中,1.8.7倍的早期版本仅限于标准的1901-2038范围,内部表示为无符号长(32位)数字。

现在差异主要是次要的,尽管在Rails中,大多数时候计算方法只是DateTime。

我真的不担心你使用DateTime或Time中的哪一个,除非你有一个特别好的理由偏好一个而不是另一个。如果您从Rails获取DateTime对象,请使用流程并使用它们。如果您正在构建自己的Ruby应用程序,那么您可以随心所欲。