21

我有一个NSDate代表特定时间的。该日期的格式是 hhmmss。我想NSInterval为该时间值添加一个值(以秒为单位)。

例子:

NSDate =         123000
NSTimeInterval = 3600

Added together = 133000

做这个的最好方式是什么?

4

3 回答 3

52

你看过Cocoa 的 Dates and Times Programming Topics手册吗?

基本上你需要将你的时间转换成一个 NSDate。要将字符串转换为日期,请使用NSDateFormatter该类,或者NSDateComponents如果您已经知道小时、分钟和秒。

NSTimeInterval只是一个双倍(即3600.0)。

然后你使用dateByAddingTimeIntervalNSDate 的方法将秒数加到时间上。

NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0];

然后,您可以使用NSDateFormatterNSDateComponents重新获得新的时间。

于 2009-04-23T11:58:43.617 回答
8

addTimeInterval 现在已弃用。尝试改用dateByAddingTimeInterval

于 2011-01-07T14:25:02.730 回答
1
// This will set the time when your view appears it will also
// set the time if you want to retrieve from it.
-(void)viewDidAppear:(BOOL)animated
{
     //Create todays date
     NSDate *duedate = [NSDate date];
     //Add how ever many days you could write 86400*numbe_of_days days 86400/24 for an hour
     //Then simply reassign the variable or use a different one.
     duedate = [duedate dateByAddingTimeInterval:86400];  //I add one day
     [datePicker setDate:duedate animated:YES]; //Animate yes will show your pickers moving
     [datePicker setMinimumDate:duedate]; //Set minimum date.
}
于 2013-10-26T07:52:34.257 回答