2010-10-12 7 views
1

J'ai la date string: Monday, October 11, 2010. Comment puis-je créer un objet NSDate à partir de là, puis obtenir différents composants comme le jour, le mois, la date, l'année. Veuillez noter que le format/les paramètres régionaux de cette chaîne peuvent changer lors de l'exécution.Conversion d'un NSString en NSDate

+0

copie possible de [NSString to NSDate] (http://stackoverflow.com/questions/1353081/nsstring-to-nsdate) –

+0

Non. J'ai besoin de plus que cela :). – Abhinav

Répondre

1

une autre possibilité:

NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSInteger units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 
NSDateComponents *components = [calendar components:units fromDate:date]; 
NSInteger year = [components year]; 
... 
+0

Merci. Ça a marché. – Abhinav

4

Utilisez un NSDateFormatter pour créer le NSDate, vous pouvez accéder à ses composants grâce à des propriétés NSDate (vous devrez ajuster la chaîne de format ci-dessous):

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"]; 

if(NSDate *myDate = [df dateFromString:string]) { 
    //Do something with myDate 
} 
+0

J'essaye d'aller chercher le mois comme theDate.month mais il me donne une erreur de compilation. – Abhinav

+1

Vous pouvez utiliser un autre NSDateFormatter avec un style de date personnalisé pour convertir la date en NSString par exemple. Vous pouvez le convertir juste au numéro du mois si vous voulez isoler cela. Vérifiez la référence NSDateFormatter. – Ben