我有 NSDate 变量,只想更改时间(不应更改日期)。是否可以 ?
例如:用户在 DatePicker 日期中选择日期间隔(如果是开始日期,我想将时间设置为 00:00:00,如果是结束日期,我将时间设置为 23:59:59)
感谢你的帮助。
问候,亚历克斯。
你会想要使用NSDateComponents。
NSDate *oldDate = datePicker.date; // Or however you get it.
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components:unitFlags fromDate:oldDate];
comps.hour = 23;
comps.minute = 59;
comps.second = 59;
NSDate *newDate = [calendar dateFromComponents:comps];
NSDate
无法更改对象。
您可以从中创建一个新NSDate
对象。看看- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds
方法。
NSDate *newDate = [endDate dateByAddingTimeInterval:24.0f * 60.0f * 60.0f - 1.0f];
当我只需要跟踪时间时,我不使用 NSDate 或 NSTimeInterval。相反,我使用 NSinteger 并存储“军事”时间,即 0830 = 8:30 AM,14:15 = 2:15 PM。