2010-12-07 8 views
0

Je travaille sur une application qui nécessite la date et l'heure de l'iPhone pour publier sur le serveur. Maintenant, cette date et l'heure sur différents appareils sont toujours différents dans le monde entier selon la région et le fuseau horaire. Je voudrais avoir le temps de date locale en 24 heures seulement, bien que si l'utilisateur a modifié le paramètre > Date &> Heure 24 heures> offComment obtenir l'heure de format 24 heures de iDevices?

Comme je ne reçois pas le temps « yyyy-MM- dd HH: mm: le format de ss, il crée un problème sur le côté serveur et affiche la date et l'heure erronées sur le serveur. Y a-t-il une solution très spécifique à cela?

Répondre

2

Je vous suggère d'éviter d'envoyer des dates formatées à un serveur et d'envoyer des horodatages UNIX à la place. [[NSDate date] timeIntervalSince1970] vous donne un horodatage indépendant du fuseau horaire que vous n'avez pas à analyser. Si vous avez également besoin du fuseau horaire, envoyez son identifiant en tant que paramètre supplémentaire.

0

Comme Costique dit, utiliser un horodatage UNIX, mais si vous devez l'avoir dans un format de chaîne, inclure le fuseau horaire dans la chaîne de format et de gérer sur le serveur, vous avez besoin quelque chose comme:

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
NSLocale *enUSPOSIXLocale = [[[NSLocale alloc] 
      initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];   
[dateFormatter setLocale:enUSPOSIXLocale]; 
[dateFormatter setTimeStyle:NSDateFormatterFullStyle]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ssZZ"]; 
NSString *transDateStr = [dateFormatter stringFromDate:transDate]; 
[dateFormatter release]; 
2

Si vous avez besoin de temps au format 24 heures, utilisez majuscule H dans dateFormatter:

dateFormatter.dateFormat = @"yyyy MM dd **HH**:mm:ss"; 
Questions connexes