美文网首页iOSiOS学习开发iOS程序猿
Ios中时间差的计算,NSData与NSCalendar(日历)

Ios中时间差的计算,NSData与NSCalendar(日历)

作者: 小僧有礼了 | 来源:发表于2016-10-18 21:31 被阅读167次

时间差的计算:

计算过去时间与当前时间的时间差

注意:其中的NSDateFormatter时间格式化类初始化非常消耗性能,如果多次使用,建议定义为全局。

NSString *timeStr = @"2016-10-18 8:22:24";

//创建时间格式化类

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

//设置时间格式化样式

dataFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

//把时间字符串转化为date

NSDate *timeDate = [dataFormatter dateFromString:timeStr];

//把时间转化为时间戳

NSTimeInterval lateTime = [timeDate timeIntervalSince1970];

//获取当前时间戳

NSDate *currentDate = [NSDate date];

NSTimeInterval currentTime = [currentDate timeIntervalSince1970];

//获取时间差

NSTimeInterval cha = currentTime - lateTime;

//获取相差的秒数

int sen = (int) cha % 60;

//获取相差的分钟数

int min = (int) cha / 60 % 60;

//获取相差的小时数

int house = (int) cha / 60 /60;

//获取相差时间的字符串

NSString *differTime = [NSString stringWithFormat:@"%02d:%02d:%02d",house,min,sen];

NSLog(@"%@",differTime);

NSDate与NSCalendar:

NSDate是独立与任何历法的,它只是时间相对于某个时间点的时间差;NSDate是进行日历计算的基础

获取年、月、日、小时,分钟、秒、星期、季度、这个月的第几个星期、这一年的第几个星期
//定义一个遵循某历法的日历对象

NSCalendar *gcCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

//获取某个时间点NSDateComponents表示,并设置需要表示哪些

NSDateComponents *dateComponents = [gcCalendar components:kCFCalendarUnitYear | 
kCFCalendarUnitMonth | 
kCFCalendarUnitDay | 
kCFCalendarUnitHour | 
kCFCalendarUnitMinute | 
kCFCalendarUnitSecond | 
kCFCalendarUnitWeekday | 
kCFCalendarUnitWeekdayOrdinal | 
kCFCalendarUnitQuarter | 
kCFCalendarUnitWeekOfMonth | 
kCFCalendarUnitWeekOfYear | 
kCFCalendarUnitYearForWeekOfYear fromDate:[NSDate date]];

//依次是年、月、日、小时,分钟、秒、星期、季度、这个月的第几个星期、这一年的第几个星期

NSLog(@"%ld",(long)dateComponents.year);

NSLog(@"%ld",(long)dateComponents.month);

NSLog(@"%ld",(long)dateComponents.day);

NSLog(@"%ld",(long)dateComponents.hour);

NSLog(@"%ld",(long)dateComponents.minute);

NSLog(@"%ld",(long)dateComponents.second);

//从星期日开始计算,星期日为1

NSLog(@"%ld",(long)dateComponents.weekday);

NSLog(@"%ld",(long)dateComponents.quarter);

NSLog(@"%ld",(long)dateComponents.weekOfMonth);

NSLog(@"%ld",(long)dateComponents.weekOfYear);

相关文章

  • Ios中时间差的计算,NSData与NSCalendar(日历)

    时间差的计算: 计算过去时间与当前时间的时间差 注意:其中的NSDateFormatter时间格式化类初始化非常消...

  • Swift与OC比较之NSDateComponents

    用NSDateComponents计算时间差 先来看OC //获取日历对象NSCalendar *cal = [N...

  • NSDateComponents 计算时间差的坑

    如果你找了好久时间差还没计算对,那恭喜你能看到这篇文章,喜欢的亲点赞 第一步:初始化日历 NSCalendar *...

  • iOS 日历 NSCalendar

    NSCalendar 是 iOS 获取日历数据的工具类。 获取指定月份的天数: 获取指定日期的是周几,在 NSCa...

  • iOS日历(NSCalendar)

    代理 Block两种回调方式 collectionStyle 设置 横向 竖向 两种日历 demo通道

  • NSCalendar 日历

    通常我们计算时间差,都是这么算的 现在我用一种新的方法来计算时间差 就是NSCalendar 打印出来的就是相差...

  • 面试准备第九篇

    ```日历 NSCalendar *calendar = [[NSCalendar alloc] initWith...

  • iOS 日历类(NSCalendar)

    对于时间的操作在开发中很常见,但有时候我们需要获取到一年后的时间,或者一周后的时间.靠通过秒数计算是不行的.那就牵...

  • iOS NSCalendar 日历【转】

    NSCalendar 对世界上现存的常用的历法进行了封装,既提供了不同历法的时间信息,又支持日历的计算。可以很方便...

  • 如果想做一个日历(iOS)

    写一个日历首先你要用到 NSCalendar类,这是一个用来处理日历相关的类,这个类中官方提供了很多计算日期的方法...

网友评论

    本文标题:Ios中时间差的计算,NSData与NSCalendar(日历)

    本文链接:https://www.haomeiwen.com/subject/zlvtuttx.html