1.week.ago.in_zone(Time.zone)for Rails?

有没有办法在特定时区使用那些花哨的时间助手方法而不这样做?

Time.use_zone(Time.zone.name) { 1.week.ago } 

我应该在什么类中添加一个in_zone方法,以便我可以在不造成太多混淆的情况下执行以下操作?

 1.week.ago.in_zone(Time.zone.name) 

或者这已经内置了吗? 我想知道因为我到处都使用Time.zone.now ,并希望在其他情况下使用更简单的方法。

Rails有一个名为in_time_zone的方法,可以为您完成此操作。 它适用于任何TimeDateActiveSupport::TimeWithZone对象..

 1.week.ago.in_time_zone("Tokyo") 

您可以通过运行获取所有可用时区的列表:

 rake time:zones:all