Есть ли лучший способ сделать это?Есть ли лучший способ завтра найти полночь?
-(NSDate *)getMidnightTommorow {
NSCalendarDate *now = [NSCalendarDate date];
NSCalendarDate *tomorrow = [now dateByAddingYears:0 months:0 days:1 hours:0 minutes:0 seconds:0];
return [NSCalendarDate dateWithYear:[tomorrow yearOfCommonEra]
month:[tomorrow monthOfYear]
day:[tomorrow dayOfMonth]
hour:0
minute:0
second:0
timeZone:[tomorrow timeZone]];
}
Обратите внимание, что я всегда хочу в полночь, даже если это случается в полночь, когда я делаю этот призыв, однако если это случается 23:59:59, я, конечно, хочу полночь, что приходит через одну секунду.
Функции естественного языка кажутся шелушащимися, и я не уверен, что сделал бы Cocoa, если я пройду 32 в поле «день». (Если бы я мог работать падение [теперь dateByAddingYears: ...] вызов)
И следуя из этого указатель, похоже, я могу вырезать большую часть этого, поскольку dateFromComponents * does *, похоже, терпит дни до конца месяца. – Dre 2008-10-08 18:07:31
dateFromComponents * может * переносить значения вне пределов, но это не гарантируется. Вам настоятельно рекомендуется не полагаться на это. – mmalc 2008-10-08 20:25:08
Я на восточном побережье, и весь день сегодня, когда я делаю вышеупомянутое преобразование, я получаю 1AM (у меня время -5 часов, но кажется, что NSCalendar убежден, что это -4 часа. (Даже если я явно установить часовой пояс) – 2011-02-23 21:54:20