2010-02-28 11 views
1

Dans mon application, je ne veux pas utiliser l'heure locale sur le téléphone. Je veux avoir l'heure actuelle en GMT. Pour ce faire, j'ai un formateur de date avec fuseau horaire défini sur GMT. Je puis procédez comme suit pour revenir l'heure actuelle:Crash lors de la conversion de la chaîne à ce jour

NSString *dateOne = [df stringFromDate:[NSDate date]]; 
NSDate *date1 = [df dateFromString:dateOne]; 

Mon application reçoit un EXC_BAD_ACCESS si l'appel de dateFromString. J'ai vérifié la valeur retournée par dateOne et son format correspond à la dateformatters. Qu'est-ce que je fais mal? Y a-t-il une meilleure manière de faire cela?

Merci

EDIT:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"yyyy-mm-dd HH:mm:ss"]; 
+0

Que dit la console? – kennytm

+0

Vous utilisez 'mm' pour le mois. Utilisez 'MM' à la place. [Df setDateFormat: @ "aaaa-MM-jj HH: mm: ss"]; –

Répondre

0

Un moyen plus facile peut-être:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"]; 

NSTimeZone *tz = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
[dateFormatter setTimeZone:tz]; 

NSDate *date = [NSDate date]; 
NSString *dateString = [dateFormatter stringFromDate:date]; 
NSLog(@"Time now in GMT: %@",dateString);