web-dev-qa-db-fra.com

Convertir une chaîne en date dans mon application iPhone

J'ai créé une application de calendrier pour l'iPhone dans laquelle j'ai une date au format chaîne (par exemple "Mar, 25 mai 2010 12:53:58 +0000").

Je veux le convertir en NSDate.

Que dois-je utiliser pour faire cela?

55
AppAspect

Jetez un oeil à la référence de classe pour NSDateFormatter . Vous l'utilisez comme ceci:

NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";

// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr]; 
[dateFormat release];

Pour plus d'informations sur la personnalisation de NSDateFormatter, essayez ce guide de référence .

MODIFIER:

Juste pour que vous sachiez, cela va analyser le nom complet du mois. Si vous voulez des noms de mois à trois lettres, utilisez LLL au lieu de LLLL.

129
Sam Ritchie
-(NSString *)dateToFormatedDate:(NSString *)dateStr {
    NSString *finalDate = @"2014-10-15";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    NSDate *date = [dateFormatter dateFromString:dateStr];
    [dateFormatter setDateFormat:@"EE, d MMM, YYYY"];
    return [dateFormatter stringFromDate:date];
}
8
Anand Prakash

Si vous stockez des dates dans l'un des styles iOS, il est beaucoup plus facile et moins sujet aux erreurs d'utiliser cette méthode:

// Define a date formatter for storage, full style for more flexibility
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterFullStyle];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];

// Use today as an example
NSDate *today = [NSDate date];
// Format to a string using predefined styles
NSString *dateString = [dateFormatter stringFromDate:today];
// Format back to a date using the same styles
NSDate *todayFromString = [dateFormatter dateFromString:dateString];
5
Pier-Luc Gendreau