Comment utiliser NSTimeZone -timeZoneWithName: avec un nom de ville à partir de Rails de ActiveSupport?
Si je n'ai que le nom de la ville comme Bangkok ou Tokyo, comment puis-je fournir un paramètre de fuseau horaire
[NSTimeZone timeZoneWithName:@"Asia/Tokyo"]
où il a également continent et la barre en face de la ville?
J'ai déjà essayé [NSTimeZone timeZoneWithName:@"Tokyo"]
, il ne fonctionne pas.
Vous devez vous connecter pour publier un commentaire.
Merci pour les réponses les gars, mais il semble que ces noms de ville sont juste un format qui Rails de "ActiveSupport::TimeZone" utilise. Je viens donc de la carte de retour. La cartographie est ici -> http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html
Il cartes le fuseau horaire de Rails "ActiveSupport::TimeZone" format à un autre format que l'iOS utilise (par exemple, "Ligne de changement de Date de l'Ouest" => "le Pacifique, à mi-chemin", "à mi-chemin de l'Île" => "le Pacifique, à mi-chemin", "Samoa" => "Pacific/Pago_Pago", ... ).
J'ai créé un fichier plist contenant un NSDictionary propriété qui peut facilement être utilisée pour la correspondance.
Edit: une version mise à jour (avec un exemple d'utilisation) pour les Rails 3.2 (merci RJ Regenold!)
Vous pouvez voir la liste de tous les noms de fuseau horaire.
Espère que ce sera utile pour vous.
Si ils sont tous en Asie, pourquoi ne pas utiliser quelque chose comme:
Si vous avez besoin de plus les villes et les fuseaux horaires, vous pouvez créer un texte statique liste de fichier basé sur tous les fuseaux horaires trouvé dans /usr/share/zoneinfo.
de créer le fichier 'timezones.by.city.txt" avec le texte suivant. (Tronquée ici.)
Alors:
grep
chose?Il renvoie à l'ensemble des timeszones pris en charge par votre système.
Vous avez à
setTime
zone comme ci-dessous, qui vous ont déjà essayé.[NSTimeZone knownTimeZoneNames];
.Vous pouvez trouver le jeu de données et/ou de l'API de http://www.geonames.org/ utile dans la résolution de ce genre de problème. Ils ont la bonne olsen fuseau horaire (qui est ce que le 'Asia/Tokyo" est appelé) pour un grand nombre d'emplacements et vous pouvez soit les télécharger et de se quereller les données vous-même, ou l'utilisation de leur API pour obtenir ce dont vous avez besoin.