ruby-on-rails - 今天和明天的日期类返回相同 - 奇怪而有趣的错误

标签 ruby-on-rails ruby date

WEIRD

我们的 rspec 在午夜 12 点到 5 点之间有奇怪的行为,我们的测试正在下降。 (我住在印度,GMT + 5.30)

进一步检查,这是我看到的

rails c
Loading development environment (Rails 4.1.8)
[1] pry(main)> Date.yesterday
=> Thu, 09 Apr 2015
[2] pry(main)> Date.today
=> Sat, 11 Apr 2015
[3] pry(main)> Date.tomorrow
=> Sat, 11 Apr 2015
[4] pry(main)>

使用 Ruby 2.1 和 Rails 4.1.8

对我来说,Date.yesterday 和 Date.tomorrow 似乎是基于 Date.current 计算的(没有时区,它被假定为 UTC)。 Date.today 的计算方式不同,当前时区图片在。

这是否意味着我不应该使用没有明确时区的任何时间、日期。这不是完全错误吗?

任何帮助将不胜感激

至少,我发现这是我们团队中某个人的有趣发现

最佳答案

如所述here , Date.today 使用系统本地时间。

在单元测试中,您应该模拟出时间,但您应该在集成测试中标准化 UTC。您可以使用 Time.now.utc.to_date 来做到这一点。 ActiveSupport也可以帮助您。

关于ruby-on-rails - 今天和明天的日期类返回相同 - 奇怪而有趣的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29571765/

相关文章:

ruby-on-rails - config.gem(在environment.rb中)有什么作用?

php - 如何在 PHP/mysql 中插入 future 的日期时间?

regex - 匹配有效日期的正则表达式

vba - 将此长 Excel 日期公式转换为 VBA

ruby-on-rails - 任何与数据库相关的 rake 任务出现 "no database"错误

ruby-on-rails - RSpec : failure Cabybara Webkit InvalidResponseError

ruby-on-rails - 为什么无法正确接收参数?

ruby - mac os x 10.9-brew 服务器需要 sinatra 错误

ruby-on-rails - 如何使用 "nested"或 `namespace`/`scope :module` 路由 `scope :path` 路径?

ruby-on-rails - Ruby on Rails - PUT 方法创建额外的参数条目