iOS 7: Convertir NSDate à chaîne avec la coutume de fuseau horaire et d'obtenir de nouvelles NSDate

Je souhaite modifier l'heure du système (de personnaliser la NSTimeZone) et de revenir une nouvelle NSDate objet.

Le code que j'ai fait

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
NSLog(@"System time: %@", [dateFormatter stringFromDate:[NSDate date]]);
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Aqtobe"]];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"Aqtobe time: %@", dateString);

La sortie

System time: 2014-02-05 10:00:46 +0000

Aqtobe time: 2014-02-05 15:00:46 +0500

Mais si j'essaie d'obtenir de nouveaux NSDate objet de Aqtobe temps:

NSLog(@"New NSDate: %@", [dateFormatter dateFromString:dateString]);

- Je obtenir

New NSDate: 2014-02-05 10:02:40 +0000

Où j'ai eu tort? Merci d'avance

  • NSDate aurez toujours le retour à l'heure GMT. Vous pouvez les mettre en forme quelque soit le fuseau horaire que vous voulez, quand vous imprimez (comme vous l'avez fait). Vous pouvez trouver plus d'informations ici
  • Je ne comprends pas complètement. Vous voulez vérifier si une date est comprise entre deux dates?
  • oui
  • Je vais l'écrire comme une réponse à cause du manque de place.
  • Vous n'êtes pas fournir le fuseau horaire par Défaut.. fuseau horaire est GMT. C'est donc de fournir la même date
InformationsquelleAutor Artem Z. | 2014-02-05