iOS 官方文档 NSDateComponents

前言

NSDateComponents是一个与日期有关的类,但这个类具体是干吗的呢?我们现从字面上的意思来理解。Components就是零件、组件的意思,其实这个类的作用就是把日期拆分成一个一个的组件。一个日期是有年月日时分秒组成的,components这个类的作用就是把日期拆分成单独的年、月、日、时、分、秒。

一、访问日期组件

1、era

(1)方法原型

@property NSInteger era
//时代

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitEra fromDate:date];

NSInteger era = [components era];
NSLog(@"era:%d",era);

输出:2016-01-22 11:37:47.691 NSDate[3541:89557] era:1

2、year

(1)方法原型

@property NSInteger year
//年

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitYear fromDate:date];

NSInteger year = [components year];
NSLog(@"year:%d",year);

输出:2016-01-22 11:12:11.479 NSDate[3294:75774] year:2016

3、month

(1)方法原型

@property NSInteger month
//月

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitMonth fromDate:date];

NSInteger month = [components month];
NSLog(@"month:%d",month);

输出:2016-01-22 11:40:31.677 NSDate[3585:91253] month:1

4、month

(1)方法原型

@property NSInteger month
//月

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitMonth fromDate:date];

NSInteger month = [components month];
NSLog(@"month:%d",month);

输出:2016-01-22 11:40:31.677 NSDate[3585:91253] month:1

5、day

(1)方法原型

@property NSInteger day
//日

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitDay fromDate:date];

NSInteger day = [components day];
NSLog(@"day:%d",day);

输出:2016-01-22 11:46:09.345 NSDate[3654:93902] day:22

6、hour

(1)方法原型

@property NSInteger hour
//时

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitHour fromDate:date];

NSInteger hour = [components hour];
NSLog(@"hour:%d",hour);

输出:2016-01-22 11:47:45.195 NSDate[3684:94879] hour:11

7、minute

(1)方法原型

@property NSInteger minute
//分

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitMinute fromDate:date];

NSInteger minute = [components minute];
NSLog(@"minute:%d",minute);

输出:2016-01-22 11:49:03.349 NSDate[3719:95826] minute:49

8、second

(1)方法原型

@property NSInteger second
//秒

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitSecond fromDate:date];

NSInteger second = [components second];
NSLog(@"second:%d",second);

输出:2016-01-22 11:52:23.927 NSDate[3778:97830] second:23

9、nanosecond

(1)方法原型

@property NSInteger nanosecond
//纳秒

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitNanosecond fromDate:date];

NSInteger nanosecond = [components nanosecond];
NSLog(@"nanosecond:%d",nanosecond);

输出:2016-01-22 11:54:56.560 NSDate[3826:99433] nanosecond:560009002

10、weekday

(1)方法原型

@property NSInteger weekday
//星期

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitWeekday fromDate:date];

NSInteger weekday = [components weekday];
NSLog(@"weekday:%d",weekday);

输出:2016-01-22 11:59:46.306 NSDate[3894:101729] weekday:6

说明:2016-01-22为星期五,因为美国的第一天是从星期天开始算,所以换算到我们中国的星期需要减1。

11、weekdayOrdinal

(1)方法原型

@property NSInteger weekdayOrdinal
//这个月的第几周

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitWeekdayOrdinal fromDate:date];

NSInteger weekdayOrdinal = [components weekdayOrdinal];
NSLog(@"weekdayOrdinal:%d",weekdayOrdinal);

输出:2016-01-22 12:04:30.976 NSDate[3956:104495] weekdayOrdinal:4

12、quarter

(1)方法原型

@property NSInteger quarter
//季度

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitQuarter fromDate:date];

NSInteger quarter = [components quarter];
NSLog(@"quarter:%d",quarter);

输出:2016-01-22 13:36:49.161 NSDate[4633:133612] quarter:0

13、weekOfMonth

(1)方法原型

@property NSInteger weekOfMonth
//这个月的第几个星期

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitWeekOfMonth fromDate:date];

NSInteger weekOfMonth = [components weekOfMonth];
NSLog(@"weekOfMonth:%d",weekOfMonth);

输出:2016-01-22 13:38:40.169 NSDate[4677:134785] weekOfMonth:4

14、weekOfYear

(1)方法原型

@property NSInteger weekOfYear
//该年的第几个星期

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitWeekOfYear fromDate:date];

NSInteger weekOfYear = [components weekOfYear];
NSLog(@"weekOfYear:%d",weekOfYear);

输出:2016-01-22 13:41:05.867 NSDate[4725:136315] weekOfYear:4

15、yearForWeekOfYear

(1)方法原型

@property NSInteger yearForWeekOfYear
//这个属性暂时不知道是什么意思

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitYearForWeekOfYear fromDate:date];

NSInteger yearForWeekOfYear = [components yearForWeekOfYear];
NSLog(@"yearForWeekOfYear:%d",yearForWeekOfYear);

输出:2016-01-22 13:43:38.975 NSDate[4768:137519] yearForWeekOfYear:2016

16、leapMonth

(1)方法原型

@property(getter=isLeapMonth) BOOL leapMonth
//判断该月是否为润月

(2)实例代码

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:NSCalendarUnitYearForWeekOfYear fromDate:date];

BOOL leapMonth = components.leapMonth;
NSLog(@"leapMonth:%d",leapMonth);

输出:2016-01-22 13:43:38.975 NSDate[4768:137519] yearForWeekOfYear:2016

17、- valueForComponent:

(1)方法原型

- (NSInteger)valueForComponent:(NSCalendarUnit)unit
//返回组件对应的值

(2)实例代码

NSDateComponents *components = [[NSDateComponents alloc] init];
[components setValue:2017 forComponent:NSCalendarUnitYear];
[components setValue:1 forComponent:NSCalendarUnitMonth];
[components setValue:1 forComponent:NSCalendarUnitDay];

NSLog(@"components:%@",components);

输出:2016-01-22 14:19:56.060 NSDate[5264:155372] components:
Calendar Year: 2017
Month: 1
Day: 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长沙火山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值