寫了篇關於NSDate和NSCalendar的文章,本想發到博客園的,結果網站有問題,就到這來湊熱鬧了,但願朋友們多多提意見。。 網站
日曆對象封裝了對系統日期的計算,包括這一年的開始,總天數以及劃分。咱們將使用日曆對象對絕對日期與components(包括年、月、日、時、分、秒)進行轉換。 spa
1. 在開始以前,咱們應該告知系統咱們當前的時間和日期。NSDate是取當前時間和日期的方法。 component
NSDate * date = [NSDate date];//定義當前系統時間 orm
2. currentCalendar來得到當前系統用戶設置的日曆對象。 對象
NSCalendar * currentCalendar = [NSCalendar currentCalendar];//設置當前的日曆對象 博客
3. 要從裏面取值,還得定義其它的組件:NSComponents來表示一個日期對象的組件---例如年、月、日和小時。 it
NSDateComponents * components = [[NSDateComponents alloc]init];//定義裏面的組件 date
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。