你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> NSDateFormatter NSDateComponents iphone 時間格式詳解

NSDateFormatter NSDateComponents iphone 時間格式詳解

編輯:IOS開發綜合
NSDateFormatter調整時間格式的代碼
在開發iOS程序時,有時候需要將時間格式調整成自己希望的格式,這個時候我們可以用NSDateFormatter類來處理。
例如:
//實例化一個NSDateFormatter對象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 
//設定時間格式,這裡可以設置成自己需要的格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
 
//用[NSDate date]可以獲取系統當前時間
NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
 
//輸出格式為:2010-10-27 10:22:13
NSLog(@”%@”,currentDateStr);
 
//alloc後對不使用的對象別忘了release
[dateFormatter release];
 
NSDateComponents
NSDateComponents封裝在一個可擴展的,面向對象的方式的日期組件。它是用來彌補時間的日期和時間組件提供一個指定日期:小時,分鐘,秒,日,月,年,等等。它也可以用來指定的時間,例如,5小時16分鐘。一個NSDateComponents對象不需要定義所有組件領域。當一個NSDateComponents的新實例被創建,日期組件被設置為NSUndefinedDateComponent。
一個NSDateComponents對象本身是毫無意義的;你需要知道它是針對什麼日歷解釋,你需要知道它的值是否是正整數和值是多少。
NSDateComponents的實例不負責回答關於一個日期以外的信息,它是需要先初始化的。例如,如果你初始化一個對象為2004年5月6日,其星期幾NSUndefinedDateComponent,不是星期四。要得到正確的星期幾,你必須創建一個NSCalendar日歷實例,創建一個NSDate對象並使用dateFromComponents:方法,然後使用components:fromDate:檢索平周幾
Getting Information About an NSDateComponents Object
 
獲取一個NSDateComponents對象的信息
 
–era 時代
–year 年
–month 月
–day 天
–hour 時
–minute 分
–second 秒
–week
–weekday
–weekdayOrdinal
–quarter 季度
Setting Information for an NSDateComponents Object
 
設置一個NSDateComponents對象的信息
 
–setEra:
–setYear:
–setMonth:
–setDay:
–setHour:
–setMinute:
–setSecond:
–setWeek:
–setWeekday:
–setWeekdayOrdinal:
–setQuarter:
例子如下:獲得2004年5月6日是星期幾
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:6];
[comps setMonth:5];
[comps setYear:2004];
NSCalendar *gregorian = [[NSCalendar alloc]
    initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
[comps release];
NSDateComponents *weekdayComponents =
    [gregorian components:NSWeekdayCalendarUnit fromDate:date];
int weekday = [weekdayComponents weekday];
NSLog(@"%d",weekday);
如果需要更加詳細,請查閱“Calendars, Date Components, and Calendar Units”in Date and Time Programming Guide.日期和時間的程序指南
 
//一段例子:計算距離某一天還有多少時間
NSDate* toDate   = [ [ NSDate alloc] initWithString:@"2012-9-29 0:0:00 +0600" ]; 
NSDate*  startDate  = [ [ NSDate alloc] init ]; 
NSCalendar* chineseClendar = [ [ NSCalendar alloc ] initWithCalendarIdentifier:NSGregorianCalendar ]; 
NSUInteger unitFlags = 
NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit; 
NSDateComponents *cps = [chineseClendar components:unitFlags fromDate:startDate  toDate:toDate  options:0]; 
NSInteger diffHour = [cps hour]; 
NSInteger diffMin    = [cps minute]; 
NSInteger diffSec   = [cps second]; 
NSInteger diffDay   = [cps day]; 
NSInteger diffMon  = [cps month]; 
NSInteger diffYear = [cps year]; 
NSLog(  @" From Now to %@, diff: Years: %d  Months: %d, Days; %d, Hours: %d, Mins:%d, sec:%d",  
[toDate description], diffYear, diffMon, diffDay, diffHour, diffMin,diffSec ); 
[toDate release]; 
[startDate release]; 
[chineseClendar release]; 

摘自 hufeng825的專欄
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved