向 NSDate 添加 30 秒
Adding 30 seconds to NSDate
如何将 NSDate
转换为秒?我需要几秒钟的时间,这样我就可以将日期增加 30 秒,然后转换回 NSDate
以安排本地通知。也欢迎任何更好的方法。
您可以使用 dateByAddingTimeInterval
并将值作为 30 传递。这将 return 您 NSDate
提前 30 秒。
NSDate *newDate = [previousDate dateByAddingTimeInterval:30];
Date and Time Programming Guide states that NSDateComponents 应该用于执行日期计算。
引自同一文档:
You should use the provided methods for dealing with calendrical calculations because they take into account corner cases like daylight savings time starting or ending and leap years.
所以要将日期增加 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);
如何将 NSDate
转换为秒?我需要几秒钟的时间,这样我就可以将日期增加 30 秒,然后转换回 NSDate
以安排本地通知。也欢迎任何更好的方法。
您可以使用 dateByAddingTimeInterval
并将值作为 30 传递。这将 return 您 NSDate
提前 30 秒。
NSDate *newDate = [previousDate dateByAddingTimeInterval:30];
Date and Time Programming Guide states that NSDateComponents 应该用于执行日期计算。
引自同一文档:
You should use the provided methods for dealing with calendrical calculations because they take into account corner cases like daylight savings time starting or ending and leap years.
所以要将日期增加 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);