Как получить NSDate на 00:00 дня [дата NSDate]?

Мне нужно получить объект NSDate для 00:00 (начало дня) из [дата NSDate], скажем, если сейчас 11:30( возвращено [дата NSDate]), 06.01.2012, теперь мне нужно иметь NSDate на 00:00 06.01.2012.

Я не пробовал, но мне пришло в голову следующее:

NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:now];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSDate *morningStart = [calendar dateFromComponents:components];

Сначала я получаю текущую дату (скажем, 06.01.2012) и создаю NSDateComponent для даты, затем устанавливаю час /минута/секунда на 0, а год/месяц/день не должны быть изменены (например, 06.01.2012), затем я создаю NSDate для этой настройки компонента и могу ли я получить дату 00:00:00 01/06 /2012?

12
задан hzxu 21 June 2012 в 07:40
поделиться