在太平洋标准时间获取Ruby的日期值?

时间:2013-04-05 01:31:35

标签: ruby ruby-on-rails-3 mongodb

我们希望今天在Ruby的太平洋标准时间使用Date类的日期(因为我们使用Mongo和Mongo无法处理Time类)。我们怎么做到这一点?

基本上,我们希望保证today = Date.to_mongo Date.today始终在PST中返回今天的日期。

我们使用的是Rails 3.12并使用MongoMapper。

感谢。

1 个答案:

答案 0 :(得分:2)

这有点低级(因为你操纵偏移量,而不是在某处声明'PST'),但可能会做到这一点:

d = DateTime.now.new_offset('-08:00').to_date

不确定你是否有夏令时,这会让事情变得更复杂?

可以将此代码段放入Date.today,但这会覆盖机器设置,因此我建议更具体的内容,例如

class Date
  def self.today_pst
    DateTime.now.new_offset('-08:00').to_date
  end
end

today = Date.to_mongo Date.today_pst

此外,警告,如果您转换回时间或日期时间,则不会保留该区域。