2016-07-07 8 views
0

Ich benutze Googles Timezone API, um TimeZoneID zu bekommen und ich übergebe es an den Rubin Edelstein TZInfo, um die Ortszeit zu bekommen. Wie kann ich den Kurznamen der Zeitzone (PST, PDT, EST, etc ...) aus dieser Info bekommen. Ich versuchte strftime(%Z), aber das gibt "UTC" zurück. Dies ist eine Ruby on Rails App.timezone id zu kurze Zeitzone (pst, pdt, cst, etc)

Antwort

1

TZInfo::Timezone#strftime funktionieren sollte:

require "tzinfo" 

tz = TZInfo::Timezone.get("America/New_York") 
puts tz.strftime("%Z") 

Wenn man das versucht, und es hat nicht funktioniert, das ist geheimnisvoll.

Alternativ können Sie TZInfo::TimezonePeriod#abbreviation verwenden:

tz = TZInfo::Timezone.get('America/New_York') 
period = tz.period_for_utc(Time.now.utc) 
puts period.abbreviation 
+0

Ich habe versucht, 'tz.now.strftime ("% Z")', die 'UTC' zurückkehren. Deine Lösung von 'tz.strftime ("% Z") hat funktioniert! –