2017-11-16 3 views
0

Ich möchte eine Zeichenfolge zu einem Objekt Zeit in Rails analysieren. Diese Zeichenfolge befindet sich in einer anderen Zeitzone als die Standard-App-Zeitzone. Wenn ich nun die Zeichenfolge analysiere, muss ich zuerst die aktuelle/Standardzeitzone speichern, die Zeitzone ändern, die Zeichenfolge parsen und die Zeitzone auf die Standardwerte zurücksetzen. Das sind 4 Zeilen Code auf eine Sache:Set Time.zone nur für einen Befehl in Rails 5

current_timezone = Time.zone 
Time.zone = "Target time zone" 
Time.zone.parse("Tue Nov 23 23:29:57 2010") 
Time.zone = current_timezone 

Gibt es eine Möglichkeit Rails innerhalb des parse Befehl zu sagen, die Zeitzone zu benutzen?

+0

Sie können dies tun ' "Tue 23. November 23.29.57 2010" .to_datetime.in_time_zone ('Pacific Time (US & Canada)')' –

Antwort

1

Time.in_zone können Sie dies ein wenig mehr idiomatisch tun.

# 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 
+0

Danke, finde ich das viel sauberer. – almo

Verwandte Themen