Установите время DatePicker

Как установить время DatePicker в 00:00:00 текущей даты?

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

person Andrea    schedule 10.04.2012    source источник
comment
См. stackoverflow.com /вопросы/5358678/   -  person Glenn    schedule 10.04.2012


Ответы (1)


съежиться

Похоже, у вас есть два разных datePickers? datePicker и datePicker1? Что случилось с этим?

Кроме того, это не делает то, что вы ожидаете:

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

Это создает новую дату, которая находится ровно на 31 449 600 секунд в будущем. Он ничего не делает, кроме этого.

Что вам нужно сделать, так это извлечь все компоненты даты из текущей даты и обнулить их:

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];
person Dave DeLong    schedule 10.04.2012