Objective-C 处理日期方法—NSDate

来源:互联网 发布:ca724 知乎 编辑:程序博客网 时间:2024/06/01 16:46

这里是关于处理日期的常用一些方法:

//1. 创建日期对象 获得的永远是0时区时间,如果要是东八区时间,就加8个小时

       NSDate *dateNow = [NSDatedate];

        

        //2. 日期格式化类

        NSDateFormatter *formatter = [[NSDateFormatteralloc]init];

        

        //3. 日期格式(固定写法)

        formatter.dateFormat =@"yyy-MM-dd HH:mm:ss";

        

        //4. 将日期格式化成字符串对象

       NSString *str = [formatter stringFromDate:dateNow];

       NSLog(@"%@", str);

        

       //5. 明天

       NSDate *date1 = [dateNow dateByAddingTimeInterval:24*60*60];

       NSLog(@"%@", date1);

        

       //6. 昨天

       NSDate *date2 = [dateNow dateByAddingTimeInterval:-24*60*60];

       NSLog(@"%@", date2);

        

        //NSDateFormatter:这个类是用来处理日期与字符串之间转换的方法

        

        //7.获取并设置时间时区,获取系统时区

       NSTimeZone *currentTimezone = [NSTimeZonesystemTimeZone];

        [formattersetTimeZone:currentTimezone];

        [formatter setDateFormat:@"yyy-MM-dd HH:mm:ss EEEE"];

       NSLog(@"%@", [formatterstringFromDate:dateNow]);

        

        

        //8. ----------------------------计算程序所用时间--------------------------------------------

        

        NSMutableArray *array = [NSMutableArrayarray];

       for (int i =0; i < 10000; i++) {

           int r = arc4random();

            [arrayaddObject:[NSStringstringWithFormat:@"%d", r]];

        }

       NSDate *startTime = [NSDatedate];//记录开始时间

        

       //系统所写排序

        [arraysortUsingSelector:@selector(compare:)];

        

       //手写冒泡

//        for (int i = 0; i < [array count] - 1; i++) {

//            for (int j = 0; j < [array count] - 1 - i; j++) {

//                if ([[array objectAtIndex:j] compare:[array objectAtIndex:j + 1]] == 1) {

//                    [array exchangeObjectAtIndex:j withObjectAtIndex:j + 1];

//                }

//            }

//        }

        

       NSDate *endTime = [NSDatedate];//记录结束时间

       NSTimeInterval usedTime = [endTime timeIntervalSinceDate:startTime];//计算时间间隔

       NSLog(@"所用时间:%f", usedTime);

        

       //---------------------------------------------------------------------------------

       

        

        //9. 距离现在的某段时间后

       NSDate *dateAfterNow = [dateNow dateByAddingTimeInterval:10]; //在此时的过10分钟

       NSLog(@"%@", dateAfterNow);

        

        

        //计算当前时间和一个固定时间的差值,如果差值在60秒内,输出刚刚,如果在60秒外3600秒内,输出“xx分钟前,如果3600秒外,3600*24秒内,输出“xx小时前”(随机获得0-255的数)

        //10. 随机创建一个date对象

        NSDate *randomDate = [NSDatedateWithTimeIntervalSinceNow:arc4random()%(3600*24)];

        

        //11. 获取randomDate和当前时间的时间差

       NSTimeInterval time = [randomDate timeIntervalSinceNow];

       NSLog(@"%f",time);

       if(time <60){

           NSLog(@"刚刚");

        }elseif (time<3600){

           int minute = time/60;

           NSLog(@"%d分钟前",minute);

        }elseif (time<3600*24){

           int hour = time/3600;

           NSLog(@"%d小时前",hour);

        }

        

        

        //12. 将日期转换成字符串再输出

        //设置自定义日期格式

        [formattersetDateFormat:@"yy/MM/dd HH:mm:ss"];

        [formatter setDateFormat:@"yy yyy yyyy  mm  MM dd DD HH  hh SS  ss"];

        //[formatter setDateFormat:@"yy/MM/dd HH:mm:ss"];

       NSString *dateString = [formatter stringFromDate:dateNow];

       NSLog(@"%@",dateString);

        

       //日期格式如下

        

//        y    Year  1996; 96

//        M  年中的月份  Month  July; Jul; 07

//        w  年中的周数  Number  27

//        W  月份中的周数  Number  2

//        D  年中的天数  Number  189

//        d  月份中的天数  Number  10

//        F  月份中的星期  Number  2

//        E  星期中的天数  Text  Tuesday; Tue

//        a  Am/pm 标记  Text  PM

//        H  一天中的小时数(0-23  Number  0

//        k  一天中的小时数(1-24  Number  24

//        K  am/pm 中的小时数(0-11  Number  0

//        h  am/pm 中的小时数(1-12  Number  12

//        m  小时中的分钟数  Number  30

//        s  分钟中的秒数  Number  55

//        S  毫秒数  Number  978  

//        z  时区  General time zone  Pacific Standard Time; PST; GMT-08:00  

//        Z  时区  RFC 822 time zone  -0800


0 0
原创粉丝点击