文档章节

NSCalendar 及 NSDate总结

唐丽梅
 唐丽梅
发布于 2013/04/25 15:40
字数 544
阅读 807
收藏 0
点赞 0
评论 0

  写了篇关于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。

© 著作权归作者所有

共有 人打赏支持
唐丽梅
粉丝 7
博文 5
码字总数 2235
作品 0
石景山
高级程序员
日历 NSCalendar

#import "ViewController.h" @interface ViewController () @property (strong,nonatomic) NSCalendar calender1; @property (strong,nonatomic) NSCalendar calender2; @end @implementatio......

我是华丽的笨笨 ⋅ 2016/01/08 ⋅ 0

ios 时间与日历

#pragma mark -Private //获取一个月多少天: (NSUInteger)numberOfDaysInMonth:(NSDate *)date{ NSCalendar *greCalendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIden......

Youth_关旋 ⋅ 2016/10/31 ⋅ 0

获取当前年月日与日期的封装

获取当月,今年: NSInteger toMonth = [[NSDate date] YMDComponents].month; NSInteger toYear = [[NSDate date] YMDComponents].year; - (NSDateComponents )YMDComponents /**<获取年月日......

精神贵族养成中 ⋅ 2016/04/07 ⋅ 0

ios时间那点事--NSCalendar NSDateComponents

iOS时间那点事 NSCalendar + NSDateComponents 历法能使人类确定每一日再无限的时间中的确切位置并记录历史。 日历,历法,一般历法都是遵循固定的规则的,具有周期性。日历都是已知的或可预...

JustBen ⋅ 2013/08/22 ⋅ 5

IOS时间处理

对时间处理,在开发时,时常碰到。一般有获取具体的年月日和星期,两个不同时间的差,某一天的前一天或后一天等;在这里我只介绍获取具体的年月日和星期,及某一天的前一天或后一天的方法; ...

未来之人 ⋅ 2013/12/26 ⋅ 1

iOS开发 关于时间问题的处理

对时间的处理一般都会用到NSDate类和NSCalendar类两个类。 获取当前的时间是:NSDate nowDate = [NSDate date];获取具体的年月日就是对nowDate的处理;一般要用到NSCalendar类,首先是对NSC...

Alan_JL ⋅ 2016/02/26 ⋅ 0

iOS时间那点事--NSDate分类

iOS 时间那点事 NSDate分类(Catogery) 分类 类,是面向对象语言的基本;类,是具有相同属性和行为的一类事物的概括,这是一种抽象;但是,事物总是多方面的,如此之多以至于我们每每看到深不...

JustBen ⋅ 2013/08/23 ⋅ 1

任意时间的Date

转载上一篇文章,是我想解决一个NSDate获取的问题。 问题是这样的:我有一个datePicker,想让它首次显示的是固定的时间(8:00)。然而,在默认情况下,datePicker首次显示的是当前的时间。为...

rainckoo ⋅ 2015/01/04 ⋅ 0

iOS开发UI之日期控件的使用(UIDatePicker)

iOS日期控件UIDatePicker用法总结 @property (nonatomic) UIDatePickerMode datePickerMode; 设置控件模式,枚举如下: @property (nonatomic, retain) NSLocale *locale; 设置本地化环境 @p......

珲少 ⋅ 2015/06/09 ⋅ 0

iOS 时间

// 得到年月上一个月的时间 func getYearMonth(dateFormatter:String) -> String { let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) let adcomps = NSDateC......

梅_95 ⋅ 2016/08/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 27分钟前 ⋅ 0

Java学习路径及练手项目合集

Java学习路径及练手项目合集

颖伙虫 ⋅ 43分钟前 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部