2012-04-10 13 views
0

Wie stelle ich die Uhrzeit des DatePickers auf 00:00:00 des aktuellen Datums ein?Uhrzeit des DatePicker einstellen

- (void) awakeFromNib 
    { 
     [datePicker setDateValue:[NSDate date]]; 
     NSDate *now = [NSDate date]; 
     int daysToAdd = 364; 
     NSDate *newDate1 = [now dateByAddingTimeInterval:60*60*24*daysToAdd]; 
     [datePicker1 setDateValue:newDate1]; 
    } 
+0

Siehe http://stackoverflow.com/questions/5358678/how-do- i-set-an-existing-nsdates-time – Glenn

Antwort

3

erschaudern

Es sieht aus wie Sie zwei verschiedene Kalenderwerkzeug haben? datePicker und datePicker1? Was ist damit?

Auch dann, wenn dies nicht tun, was Sie erwarten:

NSDate *newDate1 = [now dateByAddingTimeInterval:60*60*24*364]; 

, dass ein neuer Termin schafft, die genau 31.449.600 Sekunden in die Zukunft. Es ist nicht etwas anderes als das tun.

Was Sie tun möchten, ist das gesamte Datum zu extrahieren Komponenten aus dem aktuellen Datum und Null sie aus:

NSDate *now = [NSDate date]; 
NSDateComponents *nowComponents = [[NSCalendar currentCalendar] components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:now]; 

// technically these next lines are unnecessary, since we only pulled out the era-year-month-day, but they're included here for understanding/completeness: 

[nowComponents setHour:0]; 
[nowComponents setMinute:0]; 
[nowComponents setSecond:0]; 

// now we can turn it back into a date: 

NSDate *todayAtMidnight = [[NSCalendar currentCalendar] dateFromComponents:nowComponents]; 
+0

Danke, Sie waren sehr klar. – Andrea

Verwandte Themen