如何为NSDate添加小时数?

时间:2009-10-31 13:29:04

标签: objective-c iphone-sdk-3.0 nsdate

我将日期转换为double值并保存在数据库中。现在,我想比较currentDate > myDataBaseDate + 8小时,即我希望将8小时添加到myDataBaseDate。我正在将日期转换为双倍值。那么如何从我的数据库保存日期开始8小时后。我如何比较

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)

6 个答案:

答案 0 :(得分:147)

我不完全确定你要做什么,但你可以通过使用以下命令将时间(以秒为单位)添加到另一个NSDate来创建NSDate对象:

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

//例如添加8小时到当前时间:

NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];

答案 1 :(得分:15)

从iOS 8开始,有更方便的dateByAddingUnit

//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)

答案 2 :(得分:2)

您可以简单地使用:

NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];

答案 3 :(得分:0)

您只需将8 * 3600添加到数据库值(假设转换后的double值代表秒数)。

答案 4 :(得分:0)

NSDate * startdate = datePicker.date;

    NSTimeInterval secondsInOneHours = 1 * 60 * 60;

    NSDate *dateOneHoursAhead = [startdate dateByAddingTimeInterval:secondsInOneHours];

    [dateformate setDateFormat:@"d-MMM-yy HH:mm:ss"];

    strDate = [dateformate stringFromDate:dateOneHoursAhead];

答案 5 :(得分:-1)

Swift 3.X 简单使用

let calendar = NSCalendar.autoupdatingCurrent
let newDate = calendar.date(byAdding: .hour, value: 8, to: Date())