0

我们希望使用 Date 类在 Ruby 中以太平洋标准时间显示今天的日期(因为我们使用 Mongo 而 Mongo 无法处理 Time 类)。我们应该怎么做?

从本质上讲,我们要保证today = Date.to_mongo Date.today始终以 PST 形式返回今天的日期。

我们在 Rails 3.12 上并使用 MongoMapper。

谢谢。

4

1 回答 1

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

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

于 2013-04-05T07:08:00.340 回答