2010-07-23 6 views
0

Je crée des objets qui seront envoyés à un serveur, et j'essaie de m'assurer que je prends en compte les fuseaux horaires et l'heure d'été, donc je veux que mes horodateurs soient des "secondes depuis 1970 "quel que soit le fuseau horaire, etc.Horodatage agnostique Timezone/DST avec NSDate

Est-ce que [NSDate timeintervalSinceReferenceDate] est suffisant pour cela? Dans les docs, je sais que ça dit le temps depuis January 1 1970 00:00:00 GMT, ce que je veux, mais comment NSDate gère-t-il les fuseaux horaires? Si un utilisateur envoie un objet avec son périphérique défini sur EST, puis change son périphérique en PST, quelles conséquences cela aura-t-il sur les horodatages? Mon but est que cela ne fasse aucune différence, et je n'arrive pas à glaner cela à partir de la documentation.

La programmation de la date est un problème délicat et je veux m'assurer de bien faire les choses.

Répondre

1

La documentation dit timeIntervalSinceReferenceDate donne le temps depuis 2001. timeIntervalSince1970 retourne le temps depuis 1970.

Mais de toute façon, NSDate décrit un point dans le temps. Le fuseau horaire de l'utilisateur n'affecte que la façon dont la date est affichée pour l'utilisateur (par exemple par NSDateFormatter). Vous n'avez donc pas à vous soucier des fuseaux horaires. Mais peut-être que vous avez à vous soucier de l'erreur de l'horloge de l'utilisateur. L'utilisateur peut définir son horloge à tout ce qu'ils veulent, donc vous ne devriez pas lui faire confiance pour quelque chose de critique. Utilisez plutôt l'horloge du serveur.

Questions connexes