iOS开发学习中iOS时间处理

  在iOS开发中,有很多问题是经常遇到的,比如时间的处理就是其中一个,在开发的时候,这个问题是经常会遇到的。但是一般情况下会有获取具体时间的年月日和星期,但是这是两个不同的时间差,某天的前一天或者某天的后一天等等,下面只针对获取具体时间的年月日和星期,以及某天的其一天或者某天的后一天简单的介绍一下方法。

  处理时间的问题一般会用NSDate类和NSCalendar类两个类;

  获取当前的时间是:NSDate *nowDate = [NSDate date];获取具体的年月日就是对nowDate的处理;一般要用到NSCalendar类,首先是对NSCalendar的声明,再就是属性的设置, 其中属性[calendar components:(...)];很重要;设置了属性就可以根据方法获取年月日,如int nowYear = [comps year];

  iOS开发学习中遇到的时间处理

  获取星期要先获取int nowWeek = [comps weekday];再对nowweek的值进行判断,值是从1到7,分别对应的星期是从星期天到星期六。

  代码如下:

  NSDate *nowDate = [NSDate date]; //这是当前的时间,其实这里可以是任意时间

  NSCalendar *calendar = [NSCalendar currentCalendar];

  NSDateComponents *comps;

  comps = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:nowDate];

  int nowYear = [comps year];

  int nowMonth = [comps month];

  int nowDay = [comps day];

  int nowWeek = [comps weekday];

  NSString *weekStr = [[NSString alloc] init];

  switch (nowWeek) {

  case 1:

  weekStr = @"星期天";

  break;

  case 2:

  weekStr = @"星期一";

  break;

  case 3:

  weekStr = @"星期二";

  break;

  case 4:

  weekStr = @"星期三";

  break;

  case 5:

  weekStr = @"星期四";

  break;

  case 6:

  weekStr = @"星期五";

  break;

  case 7:

  weekStr = @"星期六";

  break;

  default:

  break;

  }

  NSLog(@"年:%d;月:%d;日:%d;%@",nowYear,nowMonth,nowDay,weekStr);

  某天的前一天或后天的方法:

  这里要用到的是NSCalendar,首先也是设置属性,和上面一样;用到最主要的方法是[comps setHour:+24];+24表示获取下一天,-24表示获取前一天;还有[comps setMinute:0]和[comps setSecond:0]都要;

  最后将calendar转换成NSdate;方法如下:

  NSDate *nowDate = [calendar dateByAddingComponents:comps toDate:showDate options:0]; //showDate表示某天的date,nowDate表示showDate的前一天或下一天的date

  代码如下:

  NSCalendar *calendar = [NSCalendar currentCalendar];

  NSDateComponents *comps;

  comps = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:[[NSDate alloc] init]];

  [comps setHour:+24]; //+24表示获取下一天的date,-24表示获取前一天的date;

  [comps setMinute:0];

  [comps setSecond:0];

  NSDate *nowDate = [calendar dateByAddingComponents:comps toDate:showDate options:0]; //showDate表示某天的date,nowDate表示showDate的前一天或下一天的date

  上面就是针对iOS开发学习中遇到的问题进行了一个简单的介绍,希望对有星期学习iOS开发的朋友有一定的帮助,如若有不足或者不对的地方,还请大家多多指教,一起学习一起进步,有更好的方法也可以提出来大家一起分享。想学习更多iOS开发方面的知识可以参加无限互联iOS开发培训.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值