DateTime类有什么意义?

时间:2012-06-09 01:35:10

标签: ruby-on-rails ruby datetime date time

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是否应该从代码库中被驱逐出来,或者它是否有助于我缺少一个有用的目的?

1 个答案:

答案 0 :(得分:3)

DateTime在红宝石中的32位机器上优于Time< 1.9.2 - TimeY2K38 problem的受害者,并且限制在32位范围内。在64位计算机和/或最近的Ruby版本中解决了这个问题。您仍然可能需要使用DateTime,例如,必须使用1.8兼容性,或者您依赖于使用API​​中的方法,这些方法通常与Time的方法不同。