将由小时和分钟(仅)组成的 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];
现在你的对象是裸体的完全相反。