本文为日期基本操作,只要涉及到:日期创建、时间间隔、日期转换。可以参考官方文档进行进一步学习研究
1.日期初始化
NSDate *date = [NSDate date];
NSLog(@"%@",date); //2017-04-03 09:19:35 +0000
//当前时间后2s
NSDate *date1 = [[NSDate alloc] initWithTimeIntervalSinceNow:2];
NSLog(@"%@",date1);
//从某个时间点date算起,后2s的时间
NSDate *date2 = [[NSDate alloc] initWithTimeInterval:2 sinceDate:date];
//从00:00:00 UTC on 1 January 2001. 后时间间隔
NSDate *date3 = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:2];
2.获取时间间隔
//typedef double NSTimeInterval;
NSTimeInterval interval = [date1 timeIntervalSinceNow];
// 获取今天到明天的时间间隔
NSTimeInterval interval1 = [date1 timeIntervalSinceDate:date];
// 获取 2001-01-01 08:00:00 到今天的时间间隔
NSTimeInterval interval3 = [date timeIntervalSinceReferenceDate];
// 获取 1970-01-01 08:00:00 到今天的时间间隔
NSTimeInterval interval4 = [date timeIntervalSince1970];
3.日期之间操作
//返回时间间隔为2s对日期
NSDate *addDate = [date dateByAddingTimeInterval:2];
// 返回一个更早的日期
// - (NSDate *)earlierDate:(NSDate *)anotherDate;
// 2个日期比较,返回更晚的日期
// - (NSDate *)laterDate:(NSDate *)anotherDate;
// 日期比较,返回 NSComparisonResult 类型
// - (NSComparisonResult)compare:(NSDate *)other;
// 日期是否相等
// - (BOOL)isEqualToDate:(NSDate *)otherDate
4.日期转换
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd"];
//转换格式
NSLog(@"%@",[formatter stringFromDate:date]); //2017-04-03
//4.2 字符串 --> 日期
NSString *dateStr = @"2017-04-01";
NSDate * formatterDate = [formatter dateFromString:dateStr];
5.随机返回一个不能达到的时间
NSDate *futureDate = [NSDate distantFuture];
NSDate *pastDate = [NSDate distantPast];