NSDate类以及category

来源:互联网 发布:淘宝店铺专业刷钻 编辑:程序博客网 时间:2024/06/17 03:12
  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结束

0 0