如何指定用于单个ActiveRecord创建或更新操作的时区?

时间:2015-04-21 23:53:55

标签: ruby-on-rails activerecord timezone

我知道我可以这样做:

Time.use_zone("St. Petersburg"){
  Foo.create!(
    topic: "foo", begins_at: "2015-06-01", ends_at: "2015-06-02"
  )
}

有更优雅的方法吗?类似的东西:

Foo.create!(
  topic: "foo", begins_at: "2015-06-01", ends_at: "2015-06-02",
  timezone: "St. Petersburg"
)

1 个答案:

答案 0 :(得分:0)

一个选项:

Foo.create!(
  topic: "foo", 
  begins_at: DateTime.parse("2015-06-01").in_time_zone('St. Petersburg'), 
  ends_at:   DateTime.parse("2015-06-02").in_time_zone('St. Petersburg')
)