日付から YEAR、MONTH、および DAY コンポーネントを使用して新しいものを作成することにより、日付の時刻を 0 時間 0 分 0 秒に設定する次のコードがあります。
NSDate *date = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];
NSDate *newDate = [gregorian dateFromComponents:comps];
NSLog(@"date: %@, newDate: %@", date, newDate);
出力は次のとおりです。
date: 2012-11-06 11:44:09 +0000, newDate: 2012-11-05 23:00:00 +0000
しかし、私は新しい日付が次のようになることを期待していました2012-11-06 00:00:00 +0000
。