iOS开发中使用NSCalendar计算两个时间差

之前计算两个时间差得到的是秒,然后通过秒来计算几个小时几分几秒,但实际苹果为我们提供了一个类,使用该类的对象方法可以直接计算出两个时间的时间差,时间差可以具体到年、月、日、时、分、秒,该类便是NSCalendar。
使用NSCalendar计算两个时间差
代码:

  NSString *time1 = @"2019-06-10 01:40:08";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *date1 = [formatter dateFromString:time1];
NSDate *date2 = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit type = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *cmps = [calendar components:type fromDate:date1 toDate:date2 options:0];
NSLog(@"时间差:%ld年%ld月%ld日%ld小时%ld分钟%ld秒", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second);

输出结果:


0.时间差.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,838评论 1 32
  • ######先说下需求:选择日期弹出日历(跟途牛,携程等差不多就行。。。行) 初识NSCalendar到写完日历的...
    只是个少年阅读 4,719评论 0 0
  • 明天都可以好好休假了,想着都美滋滋的。这么愉悦的心情怎么能够没有音乐陪衬呢,打开音乐频道正好听到胡彦斌的江湖再见,...
    墨冉宝阅读 1,488评论 0 3
  • 写字要像印刷体,稍有不满,擦掉或撕掉整张纸重新来过;穿鞋有固定的顺序,如先穿了左脚要脱掉重新从右脚开始。由于社会压...
    江苏家学宝阅读 8,691评论 0 0
  • 这是我最早买的一本萌版古风人物手绘的书,照着画的秦始皇,书是飞乐鸟工作室出的,有一系列入门手绘的书,淘宝上可以买到...
    狂风乍起呀阅读 3,777评论 0 5