2010-12-07 16 views

Répondre

125

Jetez un coup d'œil au class reference for NSDateFormatter. Vous pouvez l'utiliser 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 façon de personnaliser ce NSDateFormatter, essayez this reference guide.

EDIT:

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

+6

Ce lien du guide de référence est mort. – KClough

+0

@AppAspect Je sais que c'est 800 ans plus tard, mais essayez @ "LLLL d, HH: mm Z" OU @ "MMM jj hh: mm a". Référence: http://unicode.org/reports/tr35/tr35-10.html#Date_Field_Symbol_Table – migs647

+0

Selon ceci: http://www.unicode.org/reports/tr35/ trois L obtient 4 noms de mois de lettre, pas 3 ... Mais ça semble marcher quand même. Avait crash avant, maintenant ce n'est pas ... Peut-être quelque chose au sujet du point de rupture que j'avais avant. – shim

5

Si vous stockez des dates dans un des styles « iOS, il est beaucoup plus facile et moins sujette 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]; 
7
-(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]; 
} 
0
NSString *[email protected]"2017-05-25"; 

NSDateFormatter *dateFormatter=[NSDateFormatter alloc]init]; 

[dateFormatter setDateFormatter:@"MM-dd-yyyy"]; 

NSDate *date =[[NSDate alloc]init]; 

date=[datFormatter dateFromString:dateString]; 
+0

Alors que ce fragment de code peut résoudre la question, [y compris une explication] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) aide vraiment à améliorer la qualité de votre message. N'oubliez pas que vous répondez à la question pour les lecteurs du futur, et ces personnes peut ne pas connaître les raisons de votre suggestion de code. –