NSDate类以及category

  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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值