NSDate

本文详细介绍了NSDate的基本操作,包括创建日期对象、获取当前时间、创建明天和昨天的日期、计算两个日期间的时间间隔、比较日期先后等。同时,还介绍了如何使用NSDateFormatter进行日期格式化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.创建日期对象

       创建的NSDate对象获得的是0时区的时间,我们是东八区,在加8个小时

         NSDate *date1 = [NSDate date];(创建对象并且把当前时间赋给创建的对象,象的返回创建的对象,然后把创建的对象的地址赋给date1)

         NSLog(@"%@",date1);(打印当前时间)


2.创建明天此时的日期

          时间间隔是以秒为单位

          NSDate *tomorrowDate = [NSDate dateWithTimeIntervalSinceNow:24 * 60 * 60];(返回的时间减去现在的时间=24 * 60 * 60)

          NSLog(@"%@",tomorrowDate);


3.创建昨天此时的日期,前一天

        NSDate *yesterdayDate = [NSDate dateWithTimeIntervalSinceNow:-24 * 60 * 60];(返回的时间减去现在的时间=24 * 60 * 60)

         NSLog(@"%@",yesterdayDate);


4.获取两个日期的时间间隔

        (tomorrowDate,yesterdayDate)

        NSTimeInterval timeInterval = [yesterdayDate       timeIntervalSinceDate:tomorrowDate];(NSTimeInterval也是个类)

        NSLog(@"%g",timeInterval / 60 / 60 / 24);(前面的时间减去后面的时间是间隔时间)

        NSTimeInterval timeInterval1 =[tomorrowDate timeIntervalSinceDate:yesterdayDate];

        NSLog(@"%g",timeInterval1 / 60 / 60 / 24);


5.比较日期的早晚

        获取两个日期中较早的日期

        NSDate *earlierDate = [tomorrowDate earlierDate:yesterdayDate];

        NSLog(@"%@",earlierDate);(昨天的日期)


6.获取两个日期中较晚的日期

        NSDate *laterDate = [tomorrowDate laterDate:yesterdayDate];

         NSLog(@"%@",laterDate);(明天的日期)


7.两个日期比较

        NSComparisonResult result = [tomorrowDate  compare:yesterdayDate];降序为1(前面与后面相减)

        NSLog(@"%ld",result);

        

        NSDate *currentDate = [NSDate date];

        NSDate *dates = [NSDate dateWithTimeInterval:60 sinceDate:currentDate];

dates = 60 + currentDate

        NSTimeInterval timeInterval2 = [dates timeIntervalSinceDate:currentDate];前面减后面的

        if (timeInterval2 < 60) {

            NSLog(@"刚刚");

        }else if (timeInterval2 < 3600)

        {NSLog(@"%d分钟前",(int)(timeInterval2 / 60));}

       else if (timeInterval2 < 24 * 3600)

       {

           NSLog(@"%d小时前",(int)(timeInterval2 / 60 /60));

       }

        

        

       NSDateFormatter是一个日期格式类,将 日期以一定的格式进行转换,(原理,转换成字符串,),另外也可将日期格式转换为NSDate对象 

        NSDate *date = [NSDate date];

        创建日期格式类对象

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

       指定日期格式

        HH表示24小时制,hh表示12小时制

        MM表示月份,mm表示分钟

       dd表示当月天数,DD表示当天处于本年的第几天

       ss表示秒数

       如果年份给两个y,则显示年份的后两位,给其他个数的y都是显示完整的年份

        例如:MM,如果给两位,如果月份是一位,前面补零,如果一个M,

        [formatter setDateFormat:@"YYYY-MM-dd HH:mm:SS"];

        设置日期的格式

        [formatter setDateStyle:NSDateFormatterFullStyle];

       设置时间的格式

        [formatter setTimeStyle:NSDateFormatterFullStyle];

       将日期按照指定的格式转换为日期格式串

        NSString *datestr = [formatter stringFromDate:date];

        NSLog(@"%@",datestr);

        NSLog(@"%@",date);

        设置日期的格式

        

        将日期格式串转换为NSDate对象

        @"2008-08-08 20:08:08"

        NSString *dateStr = @"2008-08-08 20:08:08";

        创建日期格式化对象

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

       设置日期格式(一定要和日期格式串中日期的格式保持一致)

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

        NSDate *date1 = [formatter dateFromString:dateStr];

        NSLog(@"%@",date1);

        @"2014-05-01 10:23:18"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值