1.创建日期对象
(1) 创建的NSDate对象,获得的永远是0时区的时间,东八区,加8个小时
NSDate *date1 =[NSDate date];
NSLog(@"%@",date1);
(2) 创建明天此时的日期,后一天
时间间隔是以秒为单位
NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:24*60*60];
NSLog(@"%@",date2);
(3) 创建昨天此时的日期,前一天
NSDate *date3 = [NSDate dateWithTimeIntervalSinceNow:-24*60*60];
NSLog(@"%@",date3);
(4) 获取两个日期的时间间隔(date2和date3的时间间隔)
NSTimeInterval timeInterval = [date2 timeIntervalSinceDate:date3];
NSLog(@"%f",timeInterval /60 /60 /24);
NSTimeInterval timeInterval2 = [date3 timeIntervalSinceDate:date2];
NSLog(@"%f",timeInterval2 /60 /60 /24);
(5) 比较日期的早晚
(1)获取两个日期中较早的日期
NSDate *earlierDate = [date2 earlierDate:date3];
NSLog(@"%@",earlierDate);
(2)获取两个日期中较晚的日期
NSDate *laterDate = [date2 laterDate:date3];
NSLog(@"%@",laterDate);
(3)两个日期的比较
NSComparisonResult result = [date2 compare:date3];
NSLog(@"%ld",result);
例子:
// [NSDate dateWithTimeInterval:<#(NSTimeInterval)#> sinceDate:<#(NSDate *)#>]
NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:24*50*60];
NSTimeInterval time = [date2 timeIntervalSinceDate:date1];
if (time < 60) {
NSLog(@"刚刚");
}else if( time < 3600){
NSLog(@"%d分钟前",(int)time/60);
}else if(time <= 3600*24){
NSLog(@"%d小时前",(int)time/3600);
}else{
NSLog(@"%d天前",(int)time/3600/24);
}
2.NSDateFormatter 是一个日期格式类,将日期以一定的格式进行转换,(原理:转换成字符串),另外也可以将日期格式串转换成NSDate对象
NSDate *date = [NSDate date];
(1) 创建日期格式类对象
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
指定日期格式
HH 表示24小时制, hh 表示12小时制
MM 表示月份 mm 表示分钟
DD 表示当天处于本年的第几天 dd 表示当月天数
ss 表示秒数
如果年份为两个y,则只显示年份的后两位,如果给其他个数的y,都是显示完整的年份
例如:MM 如果给两位,则月份如果是一位时,前面补0
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[formatter setTimeZone:]
(2) 设置日期的格式
[formatter setDateStyle:NSDateFormatterFullStyle];
设置时间的格式
[formatter setTimeStyle:NSDateFormatterFullStyle];
(3) 将日期按照指定格式转换为日期格式
NSString *dateStr = [formatter stringFromDate:date];
NSLog(@"%@",dateStr);
(1) 将日期格式串转换成NSDate对象
//@"2008-08-08 20:08:08"
NSString *dateStr =@"2014年05月08日 10点23分18秒";
(2) 创建日期格式化对象
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
(3) 设置日期格式(一定要和日期格式串中日期的格式保持一致)
[formatter setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
(4) 将格式字符串转换成NSDate对象
NSDate *date = [formatter dateFromString:dateStr];
NSLog(@"%@",date);
NSString *str = [NSString string];
[str sayHi];
NSArray *arr = @[@"dd",@"aa",@"cc",@"ff"];
//数组升序排序
NSArray *arrAscending = [arr sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",arrAscending);
3.分类 ,类目,category
目的 是为没有源代码的类添加方法(只能添加方法,不能添加实例变量)
是扩充一个类的功能的方式之一,为原有类扩充的方法会成为原类的一部分,使用即可
分类也分为.h(接口部分) 以及.m(实现部分)
.h文件中填写方法的声明,.m文件中填写方法的实现
分类定义格式: @interface开头 + 扩展类的类名(分类名) @end结束