ruby-on-rails - DateTime 类的意义何在?

标签 ruby-on-rails ruby datetime date time

DateTime 类似乎是多余的,在阅读了该类的 Rails 扩展文档中的这一点之后,它似乎也有潜在的危险:

DateTimes aren’t aware of DST rules, so use a consistent non-DST offset when creating a DateTime with an offset in the local zone

DateTime#to_time 的 Rails 文档中还有这个:

Attempts to convert self to a Ruby Time object; returns self if out of range of Ruby Time class. If self has an offset other than 0, self will just be returned unaltered, since there’s no clean way to map it to a Time.

我假设最后一部分是由于 DateTime 没有识别 DST。

在我看来我们有这个:

  • Date 类表示没有时间的简单日期。
  • Time 类代表一个特定的时间点,隐含地包含日期。
  • DateTime 类与Time 类相同,但不理解 DST,有时无法转换为常规 Time 类。

那么 DateTime 是否应该从代码库中删除,或者它是否有我所缺少的有用目的?

最佳答案

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

关于ruby-on-rails - DateTime 类的意义何在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10957717/

相关文章:

ruby-on-rails - 使用 capistrano 部署 rails 应用程序的 bitbucket 存储库问题

ruby - 如何使用 Mechanize gem 获取网站的所有链接?

Ruby,如何控制调用实例化对象的返回值

javascript - 为什么这个 DateParser 在 Safari 中不起作用?

ruby-on-rails - 使用 API 调用更新 RoR 中的对象

css - Heroku 上的 CSS 错误

css - 在运行时重新编译 Rails sass 和 css Assets

ruby - 如何使用 XPath 选择祖先的特定 sibling

python - Pandas :将日期和时间加入一个日期时间列

sql-server - 为什么 SQL Server 不自动将 DATE 上转换为 DATETIME 以进行比较?