10

我有 NSDate 变量,只想更改时间(不应更改日期)。是否可以 ?

例如:用户在 DatePicker 日期中选择日期间隔(如果是开始日期,我想将时间设置为 00:00:00,如果是结束日期,我将时间设置为 23:59:59)

感谢你的帮助。

问候,亚历克斯。

4

3 回答 3

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];
于 2013-07-15T16:53:18.843 回答
4

NSDate无法更改对象。

您可以从中创建一个新NSDate对象。看看- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds方法。

NSDate *newDate = [endDate dateByAddingTimeInterval:24.0f * 60.0f * 60.0f - 1.0f];
于 2013-07-15T16:48:23.473 回答
0

当我只需要跟踪时间时,我不使用 NSDate 或 NSTimeInterval。相反,我使用 NSinteger 并存储“军事”时间,即 0830 = 8:30 AM,14:15 = 2:15 PM。

于 2014-03-27T15:02:25.523 回答