Frage

Von dem, was ich verstehe, rief

NSLog(@"Local Time Zone %@",[[NSTimeZone localTimeZone] name]);

gibt Ihnen die lokale Zeitzone des Geräts. Was es mir geben, ist "US / Central" , und ich kann nicht, dass überall in der Liste der Abkürzungen in [NSTimeZone abbreviationDictionary] finden , oder die Liste der Zeitzone Namen in [NSTimeZone knownTimeZoneNames] . Wo kommt dieses aus? Ich brauche die aktuelle Gerätezeitzone zu einer Rails-Anwendung zu übergeben, und es versteht, Dinge wie "Australien / Sydney" oder "Amerika / Chicago" , aber nicht "US / Central" .

Wie mache ich was localTimeZone mir gibt und wandelt es in eine Zeichenfolge, die Rails verstehen kann (dh jede Zeitzone in knownTimeZoneNames, das ist soll alle Zeitzonennamen sein, dass das System weiß, etwa?)

War es hilfreich?

Lösung

Sie sind wahrscheinlich ActiveSupport::TimeWithZone verwenden, ohne die tzinfo gem erforderlich zu haben:

$ irb -rrubygems -ractivesupport -rtzinfo
>> Time.send(:get_zone, "US/Central").now
=> Tue, 17 Nov 2009 04:27:23 CST -06:00

Wenn Sie nicht tzinfo benötigen, werden Sie nur eine Teilmenge von Zeitzonen erhalten, die ziemlich nutzlos ist.

EDIT : Nur um Verwirrung zu vermeiden, der Grund, warum ich den privaten Time#get_zone API verwendet wird, weil das, was hinter den Kulissen verwendet werden wird, wenn Sie Time#zone= nennen. Wenn Sie nicht tzinfo benötigen, Time.send(:get_zone, "US/Central") kehrt nil aufrufen.

Andere Tipps

Sind Sie immer, dass aus dem Simulator? Wenn ja, was macht diesen Befehl gibt für, wenn Sie es von einem Terminal?
laufen $ System -gettimezone

Die GUI-Zeitzone-Einstellung in Mac OS 10.5 würden Zeitzonen US / * eingestellt. Wenn Sie es manuell von der Konsole legen Sie es auf einem der erwarteten Zeitzonen eingestellt werden.

Ausführen dieses eine Liste der gültigen zu bekommen, und bemerkt, dass US / Central ist nicht unter ihnen.
$ System -listtimezones

Ausführen dieser es nach Amerika / Chicago Reise einstellen $ System -settimezone America / Chicago

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top