我有一个日期转换为double值并保存在数据库中。现在,我想比较是否currentDate > myDataBaseDate + 8
小时,即,我想将8小时添加到myDataBaseDate。我将日期转换为双重值。那么我如何从我的数据库保存日期后8小时内获得。如何比较如何将小时添加到NSDate?
if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
我有一个日期转换为double值并保存在数据库中。现在,我想比较是否currentDate > myDataBaseDate + 8
小时,即,我想将8小时添加到myDataBaseDate。我将日期转换为双重值。那么我如何从我的数据库保存日期后8小时内获得。如何比较如何将小时添加到NSDate?
if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
我不完全知道你正在尝试做的,但你可以通过使用添加时间,以秒到另一个的NSDate创建一个NSDate对象:
- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds
//如。将当前时间添加8小时:
NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];
您可以简单地添加8 * 3600到您的数据库值(假设你的转换双值表示秒)。
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];
您可以简单地使用:
NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];
由于iOS 8的存在更方便dateByAddingUnit
:
//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)
这应该是接受的答案,感谢上面的回答和评论。 – woody121 2017-02-03 04:32:10
斯威夫特3.X简单的用法
let calendar = NSCalendar.autoupdatingCurrent
let newDate = calendar.date(byAdding: .hour, value: 8, to: Date())
如果精度对你很重要,避免使用这种日期数学。你不能在一分钟内假设60秒,也不能在一小时内假设60分钟。 NSCalendar存在抽象掉所有的角落案例(例如闰秒)。 – 2015-06-28 20:15:03
tnks好友...最佳答案我找到 – Mehul 2015-08-11 05:36:42
@BenPackard在这种情况下你的解决方案是什么? – circuitry 2016-09-05 21:55:10