pragma mark 日歷NSCalendar
pragma mark 概念
/**
日歷NSCalendar
1.利用日歷類 從當(dāng)前時間對象中獲取 年月日時分秒 (單獨獲取出來) (components:fromDate:)
- (返回一個NSDateComponents對象 通過這個對象獲取對應(yīng)的年月日、時分秒)
components:想打印日期的那個值(枚舉)
fromDate:打印的日期的date;
參數(shù)說明
NSCalendarUnit: 這個是日歷中的一個枚舉 包含了年月日 時分秒 等
2. 比較兩個時間 相差多少
- (返回一個NSDateComponents對象 通過這個對象獲取對應(yīng)的年月日衔憨、時分秒)
components:想打印日期的那個值(枚舉)
fromDate:過去的時間date
toDate:現(xiàn)在的時間date
options:一般情況下都不需要 如果是一個枚舉 是一個option 傳一個0就行;
*/
pragma mark 代碼
#import <Foundation/Foundation.h>
#pragma mark 類
#pragma mark main函數(shù)
int main(int argc, const char * argv[])
{
#pragma 日歷NSCalendar
#warning 1.日歷類 NSCalendar
// 獲取當(dāng)前時間
NSDate *now = [NSDate date];
NSLog(@"now = %@",now);
// 創(chuàng)建日歷
NSCalendar *calendar = [NSCalendar currentCalendar];
#pragma 2. 利用日歷類 從當(dāng)前時間對象中獲取 年月日時分秒 (單獨獲取出來) (components:fromDate:)
/**
components:(NSCalendarUnit 是一個枚舉) 參數(shù)的含義是, 問你需要獲取什么, 年叶圃?月?日
枚舉可以寫多個
*/
// 一般情況下 如果一個方法接受一個參數(shù) ,這個參數(shù)是一個枚舉, 那么可以通過 |(或)符號,連接多個枚舉值
NSCalendarUnit type = NSCalendarUnitYear
| NSCalendarUnitMonth
| NSCalendarUnitDay
| NSCalendarUnitHour
| NSCalendarUnitMinute
| NSCalendarUnitSecond;
#warning NSDateComponents
NSDateComponents *cmps = [calendar components:type fromDate:now]; // 獲取到的日歷 存儲到 NSDateComponents這個類的對象當(dāng)中
NSLog(@"year = %ld",cmps.year);
NSLog(@"month = %ld",cmps.month);
NSLog(@"day = %ld",cmps.day);
NSLog(@"hour = %ld",cmps.hour);
NSLog(@"minute = %ld",cmps.minute);
NSLog(@"second = %ld",cmps.second);
NSLog(@"--------------");
#pragma 3.比較兩個時間的差值, 比較相差 多少年 多少月 多少日 多少小時 多少分 多少秒
// 3.1過去的一個時間
NSString *str = @"2013-04-28 07:43:58 +0000";
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";
NSDate *oldDate = [formatter dateFromString:str];
NSLog(@"oldDate = %@",oldDate);
// 3.2 當(dāng)前的時間
NSDate *nowDate = [NSDate date];
NSLog(@"nowDate = %@",nowDate);
// 3.3 比較兩個時間 (使用到 日歷類)
#warning 比較兩個時間 (components:fromDate:toDate:options)
/**
options: 一般情況下都不需要 如果是一個枚舉 是一個option 傳一個0就行
*/
NSCalendar *calendar1 = [NSCalendar currentCalendar];
NSDateComponents *cmps1 = [calendar components:type fromDate:oldDate toDate:nowDate options:0];
NSLog(@"相差 :%ld年%ld月%ld日%ld小時%ld分鐘%ld秒鐘",
cmps1.year,
cmps1.month,
cmps1.day,
cmps1.hour,
cmps1.minute,
cmps1.second
);
return 0;
}
// (單例)———— 無論獲取千次百次 都是獲取的是同一個 (都是以share 或者default 、current 開頭)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者