我有NSDate变量,并且只想更改时间(日期不应该更改)。有可能吗?
例如:用户在DatePicker日期选择日期间隔(如果它的开始日期我想将时间设置为00:00:00,如果它的结束日期,我将时间设置为23:59 :59)
感谢大家的帮助。
此致,Alex。
答案 0 :(得分:30)
您需要使用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];
答案 1 :(得分:4)
无法更改NSDate
对象。
您可以从中创建新的NSDate
对象。看一下- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds
方法。
NSDate *newDate = [endDate dateByAddingTimeInterval:24.0f * 60.0f * 60.0f - 1.0f];
答案 2 :(得分:0)
当我只需要跟踪时间时,我不使用NSDate或NSTimeInterval。相反,我使用NSinteger并存储“军事”时间,即0830 = 8:30 AM,14:15 = 2:15 PM。