为NSDate添加30秒

时间:2015-09-30 09:30:26

标签: ios cocoa-touch nsdate uilocalnotification date-arithmetic

如何将NSDate转换为秒?我需要它在几秒钟内,以便我可以添加30秒到日期,然后转换回NSDate来安排本地通知。任何更好的方法也是受欢迎的。

2 个答案:

答案 0 :(得分:6)

您可以使用dateByAddingTimeInterval并将值传入30.这将返回NSDate,这将提前30秒。

NSDate *newDate = [previousDate dateByAddingTimeInterval:30];

答案 1 :(得分:-1)

Date and Time Programming Guide声明NSDateComponents应该用于执行日期计算。

引自同一文件:

  

您应该使用提供的方法来处理日历计算,因为它们考虑了夏令时开始或结束以及闰年等极端情况。

因此,要为日期添加30秒,您应该执行以下操作:

NSDate * date = [NSDate date];
NSCalendar * currentCalendar = [NSCalendar currentCalendar];
NSDateComponents * dateComponents = [NSDateComponents new];

[dateComponents setSecond:30];

NSDate * newDate = [currentCalendar dateByAddingComponents:dateComponents toDate:date options:0];

NSLog(@"%@", newDate);