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?
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
.
-(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];
}
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];