2014-09-09 3 views
1

Je crée un sélecteur de date par programme pour ios 7 et définissez la date maximale et la date minimum.Mais il renvoie une mauvaise année pour certains jours de décembre.iOS: Le sélecteur de datePicker affiche la valeur exacte mais renvoie une date erronée

[fromDatePicker addTarget:self action:@selector(fromDatePickerAction:) forControlEvents:UIControlEventValueChanged]; 
    NSDate *date = [NSDate date]; 
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; 
    NSDateComponents * components = [[NSDateComponents alloc] init]; 
    NSDateComponents *monthComponents = [gregorian components:NSMonthCalendarUnit fromDate:date]; 
    int currentMonth = [monthComponents month]; 
    NSDateComponents *dayComponents = [gregorian components:NSDayCalendarUnit fromDate:date]; 
    int dayss=[dayComponents day]; 
    [components setYear:0]; 
    NSDate * minDate = [gregorian dateByAddingComponents: components toDate: date options: 0]; 
    [components setYear:0]; 
    [components setMonth:12-currentMonth]; 
    [components setDay:31-dayss]; 
    NSDate * maxDate = [gregorian dateByAddingComponents: components toDate: date options: 0]; 
    fromDatePicker.minimumDate=minDate; 
    fromDatePicker.maximumDate=maxDate; 
    [self.view addSubview:fromDatePicker]; 

- (void) fromDatePickerAction:(id)sender{ 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"YYYY-MM-dd hh:mm aa"]; 
[self.delegate didTouchAddNotePicker:[dateFormatter stringFromDate:[fromDatePicker date]]]; 
NSLog(@"%@",[dateFormatter stringFromDate:[fromDatePicker date]]); 
//_lblDate.text=[dateFormatter stringFromDate:[fromDatePicker date]]; 

}

Here I choose this date shown in figure But it returns this date

Ici, je choisis cette date indiquée dans la figure 1.But il retourne la date dans la figure 2

S'il vous plaît aider à résoudre ce problème

Répondre

3

Ce problème est résolu en modifiant [dateFormatter setDateFormat: @ "AAAA-MM-jj hh: mm aa"] à [dateFormatt er setDateFormat: @ "aaaa-mm-jj mm aa hh:"] dans la méthode de sélection de sélecteur de date

Please click this link to know about the difference between YYYY and yyyy

+0

Vous êtes un vrai sauveur! Merci beaucoup pour cet homme! nous a sauvé des âges de la recherche et du débogage! – Abzoozy

Questions connexes