Question

Je garde les dates et heures dans mon magasin CoreData et doivent présenter avec précision aux utilisateurs le temps initialement entré. Le problème est que s'ils sont entrés 04h00 sur la côte Est, puis regarder plus tard au moment enregistré sur la côte ouest, il apparaît comme 01h00, car l'iPhone se traduit par fois universel à l'heure locale. J'ai besoin pour montrer 04:00 -. Probablement 04h00 (+ 3h00)

Avant d'aller et de restructurer mon modèle de données de base, je veux être sûr qu'il n'y a aucun moyen de tirer le NSTimeZone qui était actif à la création en temps d'un objet NSDate stocké. Y a-t-il? Dans le cas contraire, toute recommandation la meilleure façon de capturer NSTimeZone au moment de la création moi-même? Un NSNumber représentant la différence de temps NSTimeZone création-heure GMT?

Merci.

Était-ce utile?

La solution

Comme vous l'avez découvert, NSDate représente un point universel dans le temps et ne comprend pas les informations de fuseau horaire spécifique.

Je suggère au lieu de stocker le décalage, stocker la propriété name du NSTimeZone. Ensuite, vous pouvez utiliser +[NSTimeZone timeZoneWithName:] pour obtenir le fuseau horaire et de là le convertir en heure locale. Cela vous donne un maximum de flexibilité dans la façon dont vous affichez les informations à l'utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top