nsdate学习

来源:互联网 发布:retas for mac 下载 编辑:程序博客网 时间:2024/06/15 00:22

OC NSDATE类用法

/*
   G 年代标志符
   y 年
   M 月
   d 日
   h 时 在上午或下午 (1~12)
   H 时 在一天中 (0~23)
   m 分
   s 秒
   S 毫秒
   E 星期
   D 一年中的第几天
   F 一月中第几个星期几
   w 一年中第几个星期
   W 一月中第几个星期
   a 上午 / 下午 标记符
   k 时 在一天中 (1~24)
   K 时 在上午或下午 (0~11)
   z 时区
   */

        NSDate * nowDate = [NSDate date];//获取当前时间

        //获取距离当前时间n秒以后的时间
        NSDate *d2 = [NSDate dateWithTimeIntervalSinceNow:3600];

        //获取距离指定日期,n秒后(之前)的日期
        NSDate *d3 = [NSDate dateWithTimeInterval:3600*2 sinceDate:[NSDate date]];

        //获取距离2001-01-01,n秒后(之前)的日期
        NSDate *d4 = [NSDate dateWithTimeIntervalSinceReferenceDate:3600];

        //获取距离1970-01-01,n秒后(之前)的日期
        NSDate *d5 = [NSDate dateWithTimeIntervalSince1970:3600];

        //获取两个Date对象之间的时间间隔
        NSTimeInterval t1 = [d3 timeIntervalSinceNow];

        //跟2001-01-01比较
        NSTimeInterval t2 = [nowDate timeIntervalSinceReferenceDate];

        //跟1970-01-01比较
        NSTimeInterval t3 = [nowDate timeIntervalSince1970];
        
        //计算当前时间和一个固定时间的差值,如果差值在60秒内,输出“刚刚”,如果在60秒外3600秒内,输出“xx分钟前”,如果3600秒外,3600*24秒内,输出“xx小时前”(随机获得0-255的数)
        //随机创建一个date对象
        NSDate *randomDate = [NSDate dateWithTimeIntervalSinceNow:arc4random()%(3600*24)];
        //获取randomDate和当前时间的时间差
        NSTimeInterval time = [randomDate timeIntervalSinceNow];
        NSLog(@"%f",time);
        if(time <60){
            NSLog(@"刚刚");
        }else if (time<3600){
            int minute = time/60;
            NSLog(@"%d分钟前",minute);
        }else if (time<3600*24){
            int hour = time/3600;
            NSLog(@"%d小时前",hour);

        }

       

//功能: 将NSdate转变为表示时间的NSString

        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
        NSDate *date = [NSDate  dateWithTimeIntervalSinceNow:3600*2];

       

//设置格式,表示方式:年yyyy 月:MM 日:dd  小时:hh 分钟:mm 秒:ss

        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss MMM eee a"];
        //上午
        [formatter setAMSymbol:@"AM"];
        //下午
        [formatter setPMSymbol:@"PM"];
        NSString * strdate = [formatter stringFromDate:date];


//第二个功能 :将表示时间的NSString转换问哦对应的NSdate对象       

        NSDateFormatter * formatter1 = [[NSDateFormatter alloc]init];

        NSString *str = @"2013-12-10 10:30:00";
        [formatter1 setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
        NSDate * date2 = [formatter1 dateFromString:str];
        
//2014年05月01日 10点23分18秒
        NSDateFormatter * formatter2 = [[NSDateFormatter alloc]init];
        NSString * nstr =@"2014年05月01日 10点23分18秒";
        [formatter2 setDateFormat:@"yyyy年MM月dd日  hh点mm分ss秒"];
        NSDate * date3 = [formatter2 dateFromString:nstr];

//方法二

       NSString* string = @"Wed, 3 Apr 2013 04:11:02 GMT";  
       NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];  
       [inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];  
       [inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];  
       NSDate* inputDate = [inputFormatter dateFromString:string];  
       NSLog(@"date = %@", inputDate);  
         
       NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];  
       [outputFormatter setLocale:[NSLocale currentLocale]];  
       [outputFormatter setDateFormat:@"HH:mm:ss"];  
       NSString *str = [outputFormatter stringFromDate:inputDate];  
       NSLog(@"testDate:%@", str);


1 0