pragma mark 日历NSCalendar
pragma mark 概念
/**
日历NSCalendar
1.利用日历类 从当前时间对象中获取 年月日时分秒 (单独获取出来) (components:fromDate:)
- (返回一个NSDateComponents对象 通过这个对象获取对应的年月日、时分秒)
components:想打印日期的那个值(枚举)
fromDate:打印的日期的date;
参数说明
NSCalendarUnit: 这个是日历中的一个枚举 包含了年月日 时分秒 等
2. 比较两个时间 相差多少
- (返回一个NSDateComponents对象 通过这个对象获取对应的年月日、时分秒)
components:想打印日期的那个值(枚举)
fromDate:过去的时间date
toDate:现在的时间date
options:一般情况下都不需要 如果是一个枚举 是一个option 传一个0就行;
*/
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark main函数
int main(int argc, const char * argv[])
{
#pragma 日历NSCalendar
#warning 1.日历类 NSCalendar
// 获取当前时间
NSDate *now = [NSDate date];
NSLog(@"now = %@",now);
// 创建日历
NSCalendar *calendar = [NSCalendar currentCalendar];
#pragma 2. 利用日历类 从当前时间对象中获取 年月日时分秒 (单独获取出来) (components:fromDate:)
/**
components:(NSCalendarUnit 是一个枚举) 参数的含义是, 问你需要获取什么, 年?月?日
枚举可以写多个
*/
// 一般情况下 如果一个方法接受一个参数 ,这个参数是一个枚举, 那么可以通过 |(或)符号,连接多个枚举值
NSCalendarUnit type = NSCalendarUnitYear
| NSCalendarUnitMonth
| NSCalendarUnitDay
| NSCalendarUnitHour
| NSCalendarUnitMinute
| NSCalendarUnitSecond;
#warning NSDateComponents
NSDateComponents *cmps = [calendar components:type fromDate:now]; // 获取到的日历 存储到 NSDateComponents这个类的对象当中
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 当前的时间
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 开头)
网友评论