2011-10-24 1 views
0

Je souhaite convertir NSString en NSDate.iPhone: n'obtient pas une sortie correcte lors de la conversion de NSString en NSDate

donc j'ai essayé code suivant:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"dd-MM-yyyy"]; 

    NSString *checkInDate = lblCheckIn.text; 
    NSString *checkOutDate = lblCheckOut.text; 

Ici, je reçois suivant la sortie.

NSLog(@"\nCheckIn Date : %@\nCheckOut Date : %@",checkInDate,checkOutDate); 
    // CheckIn Date : 26-10-2011 
    // CheckOut Date : 29-10-2011 

Maintenant, je veux convertir cette NSString en NSDate avec dd-MM-yyyy formate.

NSDate *checkOut = [formatter dateFromString:checkOutDate]; 
    NSDate *checkIn = [formatter dateFromString:checkInDate]; 
    [formatter release]; 

Mais j'ai eu la sortie suivante.

NSLog(@"\nCheck In : %@\nCheck Out : %@",checkIn,checkOut); 
    // Check In : 2011-10-25 18:30:00 +000 
    // Check Out : 2011-10-28 18:30:00 +000 

Qu'est-ce qui pourrait ne pas fonctionner?

+0

Je pense que vous devriez définir le NSDateFormatter avec un peu plus de "configuration" afin d'obtenir le NSDate que vous voulez. Aussi, si vous voulez juste la date comme le premier NSLog de NSStrings, utilisez-le comme ça, avec NSStrings, si vous le stockez dans CoreData ou quelque chose, quand vous le récupérez, reformatez-le et ça devrait faire l'affaire, . –

Répondre

2

J'espère que vous êtes en +5: 30 fuseau horaire .. Rien à redire avec votre code. C'est seulement l'impression de l'heure en fuseau horaire GMT.

+0

oui je suis en +5: 30 fuseau horaire. Mais à partir de mon code, il devrait donner une sortie comme 26-10-2011. – Devang

+1

Non, NSDate donne toujours l'heure dans le fuseau horaire GMT. Essayez simplement de noter l'heure actuelle. 'NSLog (@"% @ ", [date NSDate]);'. Il imprimera l'heure au format GMT. – Ilanchezhian

1
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd-MM-yyyy"]; 
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
[formatter setTimeZone:gmt]; 
NSString *checkInDate [email protected]"26-10-2011"; 
NSString *checkOutDate [email protected]"29-10-2011"; 
NSDate *checkOut = [formatter dateFromString:checkOutDate]; 
NSDate *checkIn = [formatter dateFromString:checkInDate]; 

    [formatter release];