我们希望使用 Date 类在 Ruby 中以太平洋标准时间显示今天的日期(因为我们使用 Mongo 而 Mongo 无法处理 Time 类)。我们应该怎么做?
从本质上讲,我们要保证today = Date.to_mongo Date.today
始终以 PST 形式返回今天的日期。
我们在 Rails 3.12 上并使用 MongoMapper。
谢谢。
我们希望使用 Date 类在 Ruby 中以太平洋标准时间显示今天的日期(因为我们使用 Mongo 而 Mongo 无法处理 Time 类)。我们应该怎么做?
从本质上讲,我们要保证today = Date.to_mongo Date.today
始终以 PST 形式返回今天的日期。
我们在 Rails 3.12 上并使用 MongoMapper。
谢谢。
这有点低级(因为您操纵偏移量,而不是在某处声明“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
此外,警告,如果您转换回时间或日期时间,则不会保留该区域。