將由小時和分鐘(僅)組成的 NSDate 轉換為完整的 NSDate

在很多情況下,只有一小時和分鐘格式建立了一個 NSDate,即:08:12

這種情況的缺點是你的 NSDate 幾乎完全赤裸裸,你需要做的是建立:日,月,年,秒和時區,以便此物件與其他 NSDate 型別一起玩

為了示例,我們假設 hourAndMinute 是由小時和分鐘格式組成的 NSDate 型別:

NSDateComponents *hourAndMintuteComponents = [calendar components:NSCalendarUnitHour | NSCalendarUnitMinute
                                                         fromDate:hourAndMinute];
NSDateComponents *componentsOfDate = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear
                                                                     fromDate:[NSDate date]];

NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay: componentsOfDate.day];
[components setMonth: componentsOfDate.month];
[components setYear: componentsOfDate.year];
[components setHour: [hourAndMintuteComponents hour]];
[components setMinute: [hourAndMintuteComponents minute]];
[components setSecond: 0];
[calendar setTimeZone: [NSTimeZone defaultTimeZone]];

NSDate *yourFullNSDateObject = [calendar dateFromComponents:components];

現在你的物件是裸體的完全相反。