Foundation 框架之 日期與時(shí)間
----------日歷 (NSCalendar) 與日期組件 (NSDateComponents)----------
前面 介紹了NSDate的功能和用法,以及NSDate 與NSString 之間的相互轉(zhuǎn)換,假設(shè)有如下場景:程序提
供了3哥輸入框,用于分別輸入年火欧、月搪泳、日的數(shù)值,接下來需要將年、月叶圃、日數(shù)值轉(zhuǎn)換為NSDate;另一個(gè)場景:得到一個(gè)NSDate 對象后,程序需要獲取該NSDate 中包含的年份宴抚、月份、第幾日甫煞。這些都需要將NSDate的各個(gè)字段數(shù)值分開提取菇曲。為了能分開處理NSDate 對象所包含的各個(gè)字段的數(shù)據(jù),Foundation 框架提供了NSCalendar 對象。
//獲取代表公歷的日歷對象calendar
NSCalendar * calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
//獲取日期時(shí)間對象
NSDate * date =[NSDate date];
//定義一個(gè)時(shí)間字段的旗標(biāo)抚吠,指定會(huì)獲取的年常潮、月、日楷力、時(shí)喊式、分孵户、秒、工作日的信息
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth |NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond | NSCalendarUnitWeekday;
//獲取不同時(shí)間字段信息
NSDateComponents * comp = [calendar components:unitFlags fromDate:date];
//打印所有時(shí)間字段信息
NSLog(@"現(xiàn)在是%ld年%ld月%ld日%ld時(shí)%ld分%ld秒星期%ld",comp.year,comp.month,comp.day,comp.hour,comp.minute,comp.second,comp.weekday);
//現(xiàn)在是2016年6月19日22時(shí)50分41秒星期1(為什么比實(shí)際多一天岔留,筆者也不知道夏哭,有知道的朋友留言說一下,謝謝)
//創(chuàng)建一個(gè)NSDateComponents對象
NSDateComponents * comp2 = [[NSDateComponents alloc]init];
//給comp2中的字段賦值
comp2.year = 2016;
comp2.month = 6 ;
comp2.day = 18;
comp2.hour = 22;
comp2.minute = 31;
comp2.second = 34;
NSLog(@"%@",[calendar dateFromComponents:comp2]);
//016-06-18 14:31:34 +0000
喜歡的話献联,幫忙點(diǎn)一下喜歡竖配,謝謝!
如果有錯(cuò)誤之處或者偏差,還請斧正里逆!
歡迎大家留言提問,技術(shù)要交流才能更快成長进胯!