Domanda

Da quello che ho capito, chiamando

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

ti dà il fuso orario locale del dispositivo. Quello che mi sta dando è "US / Centrale" , e non riesco a trovare che ovunque nella lista delle abbreviazioni in [NSTimeZone abbreviationDictionary] , o la lista di fuso orario nomi in [NSTimeZone knownTimeZoneNames] . Dove si trova questo proviene? Ho bisogno di passare il tempo dispositivo orario corrente ad un'applicazione Rails, e capisce le cose come "Australia / Sydney" o "America / Chicago" , ma non "US / centrale" .

Come faccio a prendere quello fuso orario locale mi sta dando e convertirlo in una stringa che Rails può capire (cioè qualsiasi fuso orario in knownTimeZoneNames, che è dovrebbe per essere tutti i nomi di fuso orario che il sistema sa circa?)

È stato utile?

Soluzione

Si sta probabilmente utilizzando ActiveSupport::TimeWithZone senza aver richiesto la gemma tzinfo:

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

Se non si richiedono tzinfo, si otterrà solo un sottoinsieme dei fusi orari, che è abbastanza inutile.

Modifica : Giusto per evitare confusione, il motivo per cui ho usato l'API Time#get_zone privata è perché questo è ciò che viene utilizzato dietro le quinte quando si chiama Time#zone=. Se non si richiede tzinfo, chiamando Time.send(:get_zone, "US/Central") ritorna nil.

Altri suggerimenti

Si stanno ottenendo che all'interno del simulatore? Se sì, quali fa questo comando restituisce per se lo si esegue da un terminale?
$ Systemsetup -gettimezone

L'interfaccia grafica impostazione del fuso orario in Mac OS 10.5 avrebbe messo fusi orari a US / *. Se si imposta manualmente dalla console è possibile impostarla su uno dei fusi orari previsti.

Esegui questo per ottenere un elenco dei validi, e notare che gli Stati Uniti / centrale non è tra questi.
$ Systemsetup -listtimezones

Esegui questo per impostarlo America / Chicago
$ Systemsetup -settimezone America / Chicago

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top