1、NSDate的使用
1> NSDate初始化方法
//获取当前时间
NSDate * date = [NSDate date];
//返回以当前时间为基准,然后过了secs秒的时间
[NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24];
//返回以lastDate为基准,然后过了secs秒的时间
[NSDate dateWithTimeInterval:60 * 60 * 24 sinceDate:lastDate];
//返回以2001年1月1日为基准,然后过了secs秒的时间
[NSDate dateWithTimeIntervalSinceReferenceDate:0];
//返回以1970年1月1日为基准,然后过了secs秒的时间
[NSDate dateWithTimeIntervalSince1970:60 * 60 * 24];
2> 获取时间界限方法
//将来的时间界限4000年
[NSDate distantFuture];
//过去的时间界限0000年
[NSDate distantPast];
3> 比较时间方法
//比较两个时间是否相同
[date isEqualToDate:date2];
//返回比较晚的日期
[date laterDate:date2];
//返回比较早的日期
[date earlierDate:date2];
//返回NSComparisonResult对象
[date compare:date2];
4> 获取时间间隔方法
//获取两个时间的时间间隔
[date2 timeIntervalSinceDate:date];
//获取现在与2001年的时间间隔
[NSDate timeIntervalSinceReferenceDate];
//获取date1与2001年的时间间隔
[date1 timeIntervalSinceReferenceDate];
//获取date1与现在时间间隔
date1.timeIntervalSinceNow
5> 添加时间间隔
[date dateByAddingTimeInterval:60 * 60 * 24];
6> 根据当前位置字符串展示日期
[date descriptionWithLocale:[NSLocale currentLocale]];
2、NSDateFormatter格式化日期类
基本用法举例:
NSDate * date = [NSDate date];
//初始化
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
//设置日期格式
formatter.dateStyle = NSDateFormatterFullStyle;
//设置时间格式
formatter.timeStyle = NSDateFormatterShortStyle;
//设置区域语言
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"zh-cn"];
//将日期按以上格式转换成字符串
NSString * dateString = [formatter stringFromDate:date];
NSLog(@"%@",dateString);
自定义日期格式NSDate转NString:
NSDate * date = [NSDate date];
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
//设置自定义日期格式
formatter.dateFormat = @"yyyy-MM-dd a hh:mm:ss.SSS E Z ";
NSString * dateString = [formatter stringFromDate:date];
NSLog(@"%@",dateString);
自定义日期格式NString转NSDate:
NSString * string = @"2015-12-29 10:18:19";
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate * date = [formatter dateFromString:string];
NSLog(@"%@",date);
总结dateFormat格式:
格式 | 涵义 |
---|---|
yyyy | 年 |
MM | 月 |
dd | 日 |
HH | 24小时 |
hh | 12小时 |
mm | 分钟 |
ss | 秒 |
SSS | 微秒 |
a | 上午下午 |
E | 星期 |
Z | 时区 |
3、时间类的应用
1、测试一段代码的执行时间
NSDate * date = [NSDate date];
/*这里放测试代码*/
NSLog(@"%lf",[[NSDate date] timeIntervalSinceDate:date]);
2、Unix时间戳
//NSDate转时间戳
NSTimeInterval seconds = [[NSDate date] timeIntervalSince1970];
//时间戳转NSDate
NSDate * date = [NSDate dateWithTimeIntervalSince1970:1451394269];