今天总结一下OC中NSDate的一些简单的用法,注意可不是NSData哦!
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转时间戳
[[NSDate date] timeIntervalSince1970];
时间戳转NSDate
[NSDate dateWithTimeIntervalSince1970:1451394269];