51

我将日期转换为双精度值并保存在数据库中。现在,我想比较currentDate > myDataBaseDate + 8小时数,即我想将 8 小时添加到 myDataBaseDate。我正在将日期转换为双精度值。那么如何从我的数据库保存日期获得 8 小时后的时间。我如何比较

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
4

6 回答 6

149

我不完全确定您要做什么,但是您可以通过将时间(以秒为单位)添加到另一个 NSDate 来创建一个 NSDate 对象,方法是:

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

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

NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];
于 2009-10-31T13:51:26.460 回答
19

由于 iOS 8 有更方便dateByAddingUnit

//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)
于 2015-05-10T13:38:25.690 回答
2

您可以简单地使用:

NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];
于 2015-01-15T17:04:19.513 回答
0

您可以简单地将 8 * 3600 添加到您的数据库值(假设您转换的双精度值表示秒)。

于 2009-10-31T13:48:51.117 回答
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];
于 2014-10-17T15:52:17.690 回答
-1

Swift 3.X简单使用

let calendar = NSCalendar.autoupdatingCurrent
let newDate = calendar.date(byAdding: .hour, value: 8, to: Date())
于 2017-02-28T12:43:43.703 回答