我们希望今天在Ruby的太平洋标准时间使用Date类的日期(因为我们使用Mongo和Mongo无法处理Time类)。我们怎么做到这一点?
基本上,我们希望保证today = Date.to_mongo Date.today
始终在PST中返回今天的日期。
我们使用的是Rails 3.12并使用MongoMapper。
感谢。
答案 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
此外,警告,如果您转换回时间或日期时间,则不会保留该区域。