博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSCalendar 及 NSDate总结
阅读量:6860 次
发布时间:2019-06-26

本文共 1467 字,大约阅读时间需要 4 分钟。

hot3.png

  写了篇关于NSDate和NSCalendar的文章,本想发到博客园的,结果网站有问题,就到这来凑热闹了,希望朋友们多多提意见。。

         日历对象封装了对系统日期的计算,包括这一年的开始,总天数以及划分。我们将使用日历对象对绝对日期与components(包括年、月、日、时、分、秒)进行转换。

1.      在开始之前,我们应该告知系统我们当前的时间和日期。NSDate是取当前时间和日期的方法。

   NSDate * date = [NSDate date];//定义当前系统时间

2.      currentCalendar来获得当前系统用户设置的日历对象。

   NSCalendar * currentCalendar = [NSCalendar currentCalendar];//设置当前的日历对象

3.      要从里面取值,还得定义其它的组件:NSComponents来表示一个日期对象的组件---例如年、月、日和小时。

   NSDateComponents * components = [[NSDateComponents alloc]init];//定义里面的组件

4.      如果要使NSDateComponents对象有意义,必须将其与一个日历对象相关联。

NSDatecomponents * dateComponents = [currentCalents components: NSYearCalendarUnit| NSMonthCalendarUnit| NSDayCalendarUnit| NSHourCalendarUnit| NSMinuteCalendarUnit| NSSecondCalendarUnit| NSWeekCalendarUnit| NSWeekOfMonthCalendarUnit fromDate:date];//告知日历里面的组件究竟有哪些

5.      前面已经定义好了,下面就可以依次取里面的值了。

NSLog(@“year:%ld”,[dateComponents year]);//调用里面的年份的值

  其他的也可以类似一一调用了。

   上面是从日历里面输出组件的值,下面我们可以正好反过来,先定义组件,然后给组件进行赋值,最后输出的日历里面仅有我们定义的几个组件。

1.      先定义一个组件:

  NSDateComponents * components = [[[NSDateComponents alloc]init]autorelease];//定义组件,并且自动释放

2.  对里面的组件进行赋值

  [components setYear:2013];

  [components setMonth:4];

  [components setDay:25];

  [components setHour:16];

3.      定义一个日历对象:

  NSCalendar *current = [[NSCalendar currentCalendar];

4.      定义一个日期对象,显示含有所定义组件的日期:

  NSDate * date = [current dateFromComponents :compoments];

5.      输出这个日历:

  NSLog(@”date:%@”,date);

   今天老师讲的时候,觉得乱起八糟的,现在整理整理,发现还是那么简单。下回争取在老师讲之前就弄懂。。。下面的一篇要介绍NSDateFormater。

转载于:https://my.oschina.net/u/559156/blog/125305

你可能感兴趣的文章
预告:如何完成从学术科研到产业创新的华丽转身?| 硬创公开课
查看>>
《C++语言入门经典》一2.3 数据的输入与输出
查看>>
阿里云ECS通过docker配置MySQL--MGR
查看>>
光伏业需要一次国内“双反”
查看>>
小微企业都在用的一体化管理解决方案
查看>>
Sql Server 2008 为开发带来的新特性
查看>>
Realm为Node.js发布对象数据库
查看>>
农民别再愁!人工智能帮你诊断作物疾病
查看>>
物联网行业将掀起新一轮并购潮 步入整合期
查看>>
夏日炎炎 构筑安防线 这些知识你Get到了吗?
查看>>
《C语言程序设计:问题与求解方法》——2.4节C语言源程序的次要组成成分:编译预处理命令、注释和声明...
查看>>
业绩不佳引裁员 雅虎2016有点烦
查看>>
《Hadoop实战第2版》——导读
查看>>
德国为新能源付出了哪些巨大的代价?
查看>>
探讨医疗人工智能之眼科AI的真实应用场景(肽积木CEO柏文洁)丨硬创公开课...
查看>>
中冶集团首度亮相智博会 探索“智慧城市的智慧地下”
查看>>
大数据认知:军事后勤变革的新引擎
查看>>
荷兰Serverius数据中心如何逆袭运营困境
查看>>
思科:6成物联网计划仍处于概念验证阶段
查看>>
物联网普及率目前第一是韩国
查看>>