2012-04-10 88 views
0

如何在當前日期的00:00:00設置DatePicker的時間?設置DatePicker的時間

- (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

見http://stackoverflow.com/questions/5358678/how-do- i-set-an-existing-nsdates-time – Glenn 2012-04-10 17:08:20

回答

3

畏縮

它看起來像你有兩個不同的datePickers? datePickerdatePicker1?那是怎麼回事?

而且,這不會做你期待什麼:

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

這是創建在未來究竟31449600秒一個新的日期。這是而不是做其他事情。

你想要做的是從當前日期提取所有日期的組件和零出來:

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

謝謝,你一直很清楚。 – Andrea 2012-04-10 20:07:32