Pourquoi suis-je « 2010-01-01 00:00:00 +900 » de « 2010-12-31 15:00:00 +000 »?
-
14-10-2019 - |
Question
Je NSDate, il sera affiché comme ci-dessous si je NSLog(@"%@", date.description);
2010-12-31 15:00:00 +0000
il sera affiché comme si je NSLog(@"%@", [date descriptionWithLocale:[[NSLocale currentLocale] localeIdentifier]]);
Samedi 1 Janvier, 2011 00:00:00 Heure normale du Japon
Mais ce sera comme ci-dessous montrent si je NSLog(@"%@", [date formattedDateString]);
2010-01-01 00:00:00 +0900
Où dois-je faire erreur?
- (NSString *)formattedDateString {
return [self formattedStringUsingFormat:@"YYYY-MM-dd HH:mm:ss ZZZ"];
}
- (NSString *)formattedStringUsingFormat:(NSString *)dateFormat {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:dateFormat];
NSString *ret = [formatter stringFromDate:self];
[formatter release];
return ret;
}
La solution
Je suis ce que je dois comme ci-dessous:
- (NSString *) formattedDateString {
retour [auto formattedStringUsingFormat: @ "yyyy-MM-JJ HH: mm: ss ZZZ"];
}
Autres conseils
Vous avez une sous-classe de NSDate, non? Ma seule conjecture est que vous avez fait une erreur quelque part ailleurs dans le code de priorité, peut-être lors de la configuration des composants du temps de la date (pour ainsi dire) de telle sorte que la chaîne de description ou de ses données source n'a pas été correctement mis à jour.
Edit: Oh tu l'as travail, grand. Quelques secondes trop tard. :) À la vôtre!
Les deux points de 2010-01-01 00:00:00 +900
et 2010-12-31 15:00:00 +000
au même temps.
Modifier :
Les deux points de 2011-01-01 00:00:00 +900
et 2010-12-31 15:00:00 +000
au même temps.
Est-ce que vous habitez à GMT + 9 (disons Tokyo)?