NSDateComponents
一个对象,用于指定要在日历系统和时区中评估的单位(例如年,月,日,小时和分钟)的日期或时间。
NSDateComponents以可扩展的,面向对象的方式封装日期的组件。它通过提供构成日期和时间的组成部件来指定日期:小时,分钟,秒,日,月,年等。还可以使用它来指定持续时间,例如,5小时16分钟。一个对象不要求定义所有组件字段。当创建一个新的NSDateComponents实例时,将日期组件设置为NSDateComponentUndefined。NSDateComponents的实例无法找出除初始化日期的信息之外的关于日期的信息,需要创建新的实例来检索日期信息;
- 继承自NSObject;
代码
// 初始化组件
NSDateComponents *components = [[NSDateComponents alloc]init];
NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
// 设置日历
components.calendar = calendar;
// 设置时区
components.timeZone = [[NSTimeZone alloc]initWithName:@"Asia/Shanghai"];
// 设置时代
components.era = 1;
// 设置年数
components.year = 2019;
// 设置月数
components.month = 6;
// 设置天
components.day = 10;
// 设置小时
components.hour = 13;
// 设置分
components.minute = 24;
// 设置秒
components.second = 36;
//设置纳秒
components.nanosecond = 100;
// 转日期
NSDate *date = [calendar dateFromComponents:components];//2019-06-10 05:24:36 +0000
NSDateComponents *components = [[NSDateComponents alloc]init];
NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
// 通过日历单位设置值
[components setValue:2019 forComponent:NSCalendarUnitYear];
[components setValue:6 forComponent:NSCalendarUnitMonth];
[components setValue:13 forComponent:NSCalendarUnitDay];
// 转日期
NSDate *date = [calendar dateFromComponents:components];//2019-06-12 16:00:00 +0000