2011-07-02 3 views
2

J'imprime NSDate comme ceci:NSDate ne pas retourner la date correcte

NSDate *date = [NSDate date]; 
NSString *stringDate = [data description]; 

En ce moment, il est de 1 Juillet, 2011 23:43. Mon iPod dit même que sur la barre supérieure. Mais stringDate imprime: 2011-07-02 03:43:46 +0000

Ceci est évidemment faux. J'ai utilisé NSDate des millions de fois mais je n'ai jamais eu ce problème. Quel pourrait être le problème? Merci

+0

duplication possible de [NSDate exprimée dans différents fuseaux horaires, c.-à-d. Fuseau horaire local (GMT-400) à PST] (http://stackoverflow.com/questions/2503397/nsdate-expressed-in-different-time-zones -ie-local-time-zone-gmt-400-to-pst) –

Répondre

4

temps de votre région décalée est -04: 00? NSDate ajustera automatiquement le décalage temporel lors de l'affichage de la date. Essayez,

NSString *str = [date descriptionWithLocale:[NSLocale currentLocale]]; 

Il vous montrera la bonne date.

+0

Merci pour la réponse. Je n'ai aucune idée de ce que tu veux dire. Comment puis-je modifier ce décalage horaire? Je ne l'ai jamais mis à -04: 00 – sumderungHAY

+0

@sumderungHAY, Vous pouvez utiliser NSDateFormatter. – EmptyStack

3

Êtes-vous dans le fuseau horaire GMT -4? Le résultat qu'il vous donne serait correct dans ce cas, car 2011-07-02 03:43:46 +0000 est 2011-07-01 11:43:46 -4000.

+0

Oui. Alors, comment puis-je obtenir la bonne chaîne de temps? – sumderungHAY

+0

@sumderungHAY: Utilisez un ['NSDateFormatter'] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html) –

+0

Jetez un oeil à [cette question] (http://stackoverflow.com/q/2503397/239076). –

Questions connexes