Ruby on rails 在Rails中将系统日期转换为本地日期

Ruby on rails 在Rails中将系统日期转换为本地日期,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个具有此范围的模型: scope :next_week, lambda { where("date > (?) and date <= (?)", Date.today, Date.today + 1.weeks ) } 我看到过在时区中使用将time.now转换为配置时间的帖子 约会有这样的事吗?或者有人能推荐一种方法来调整我的日期查询,以计算date.today到本地日期吗?谢谢大家! 因为Date根本不考虑时区,所以您需要使用Rails添加到RubyDate对象的\t

我有一个具有此范围的模型:

scope :next_week, lambda { where("date > (?) and date <= (?)", Date.today, Date.today + 1.weeks ) }
我看到过在时区中使用
将time.now转换为配置时间的帖子


约会有这样的事吗?或者有人能推荐一种方法来调整我的日期查询,以计算
date.today
到本地日期吗?谢谢大家!

因为Date根本不考虑时区,所以您需要使用Rails添加到Ruby
Date
对象的
\to\u time\u in\u current\u zone
方法

从文档中:

Converts Date to a TimeWithZone in the current zone if Time.zone or Time.zone_default is set, otherwise converts Date to a Time via #to_time
用法如下所示:

Date.today
# => Mon, 06 May 2013 

Date.today.to_time_in_current_zone
# => Mon, 06 May 2013 00:00:00 CDT -05:00 

在Elabs上有一篇精彩的博文,提供了关于这个主题的更多信息。

我用
Time.current.to_date
而不是
date解决了这个问题。今天

谢谢Dan。我尝试了
Date.今天。到当前区域的\u time\u
,但它在2013年5月7日星期二00:00:00 EDT-04:00回来了,尽管它仍然在东部时间5月6日。链接页面上的信息很好,但评论中也有一个讨论,暗指
Date.today.to\u time\u in\u current\u zone
未按预期更改日期。
Date.today
# => Mon, 06 May 2013 

Date.today.to_time_in_current_zone
# => Mon, 06 May 2013 00:00:00 CDT -05:00