仅为Rails 5中的一个命令设置Time.zone

时间:2017-11-16 10:42:14

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-5

我想将字符串解析为Rails中的Time对象。此字符串位于默认应用程序时区的另一个时区中。所以现在,当我解析字符串时,我首先必须存储当前/默认时区,更改时区,解析字符串并将时区更改回默认值。这是一行代码的4行代码:

       db.update_item(Key={ "Name":"Dany"}, 
                      UpdateExpression='ADD #oldVote :newVote', 
                      ExpressionAttributeNames={ '#oldVote' :'Vote'}, 
                      ExpressionAttributeValues={':newVote': {"N": "1"}} 
                      )

有没有办法在current_timezone = Time.zone Time.zone = "Target time zone" Time.zone.parse("Tue Nov 23 23:29:57 2010") Time.zone = current_timezone 命令中告诉Rails使用哪个时区?

1 个答案:

答案 0 :(得分:1)

Time.in_zone允许您更惯用地执行此操作。

# Acting with the rails default timezone
Time.use_zone("America/New_York") do
  # Acting with the target timezone
  Time.zone.parse("Tue Nov 23 23:29:57 2010") #=> Tue, 23 Nov 2010 23:29:57 EST -05:00
end
# Acting with the rails default timezone