将由小时和分钟(仅)组成的 NSDate 转换为完整的 NSDate

在很多情况下,只有一小时和分钟格式创建了一个 NSDate,即:08:12 从服务器返回一个字符串,并且通过这些启动 NSDate 实例**。**

这种情况的缺点是你的 NSDate 几乎完全赤裸裸,你需要做的是创建:日,月,年,秒和时区,以便此对象与其他 NSDate 类型一起玩

为了示例,我们假设 hourAndMinute 是由小时和分钟格式组成的 NSDate 类型:

Objective-C

NSDateComponents *hourAndMinuteComponents = [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: [hourAndMinuteComponents hour]];
[components setMinute: [hourAndMinuteComponents minute]];
[components setSecond: 0];
[calendar setTimeZone: [NSTimeZone defaultTimeZone]];

NSDate *yourFullNSDateObject = [calendar dateFromComponents:components];

现在你的对象是裸体的完全相反。