2015-07-31 1 views
0

J'utilise ce code pour configurer une date personnaliséedateFromComponents retour date incorrecte

NSDecimalNumber *salaryToReturn = [NSDecimalNumber zero]; 

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSCalendarIdentifierGregorian]; // Setup an NSCalendar 
NSDateComponents *components = [gregorianCalendar components: NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear |NSCalendarUnitSecond | NSCalendarUnitMinute | NSCalendarUnitHour | NSCalendarUnitTimeZone fromDate: [NSDate date]]; // Setup NSDateComponents 
[components setTimeZone:[NSTimeZone defaultTimeZone]]; 
[components setMonth:monthInt]; // 6 
[components setYear:yearInt]; // 2015 

// Setup the new date 
NSDate *dateToCompare = [gregorianCalendar dateFromComponents: components]; 

mais dateToCompare affiche comme "01/07/2015 11:31:01 +0000"

comme en Juillet et pas Juin, pourquoi est-ce? Il s'affiche cependant correctement si je le mets à 5 et non 6

Merci!

EDIT

Je pense que je sais pourquoi, il est parce que je ne mets pas le jour, et le 31 Juin n'existe pas

Répondre

0

Le problème était que je revins le mois en cours Retour avec un mois mais cela ne fonctionne pas parce que ont Juin seulement 30 jours, et il est le 31 aujourd'hui

0

Vous avez oublié de régler le jour

[components setDay:1];