我将日期转换为double值并保存在数据库中。现在,我想比较currentDate > myDataBaseDate + 8
小时,即我希望将8小时添加到myDataBaseDate。我正在将日期转换为双倍值。那么如何从我的数据库保存日期开始8小时后。我如何比较
if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
答案 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())