DateTime
类似乎是多余的,在阅读了类的Rails扩展的文档中的这一点后,它似乎也有潜在危险:
DateTimes不知道DST规则,因此在本地区域中创建具有偏移量的DateTime时使用一致的非DST偏移量
在DateTime#to_time
的Rails文档中还有这个:
尝试将self转换为Ruby Time对象;如果超出Ruby Time类的范围,则返回self。如果self的偏移量不是0,那么self将不会被改变,因为没有干净的方法将它映射到Time。
我假设最后一部分归因于DateTime
无法识别DST。
在我看来,我们有这个:
Date
类代表一个没有时间的简单日期。Time
类表示特定时间点,隐含地包含日期。DateTime
类与Time
类相同,但不了解DST,有时无法转换为常规Time
类。那么DateTime
是否应该从代码库中被驱逐出来,或者它是否有助于我缺少一个有用的目的?
答案 0 :(得分:3)
DateTime
在红宝石中的32位机器上优于Time
< 1.9.2 - Time
是Y2K38 problem的受害者,并且限制在32位范围内。在64位计算机和/或最近的Ruby版本中解决了这个问题。您仍然可能需要使用DateTime
,例如,必须使用1.8兼容性,或者您依赖于使用API中的方法,这些方法通常与Time
的方法不同。