NSDateComponents Class Reference

        NSDateComponents是NSCalendar的辅助工具类,当你使用NSCalendar提取NSDate的小时数九需要它。

关于NSDate的编程介绍,详见《NSDate Class Reference
关于NSCalendar的编程介绍详见《 NSCalendar Class Reference


获取时间属性

date Property
calendar Property
timeZone Property

#pragma mark 获取时间属性
- (void)testGettingDateValue {

    NSCalendar *calendar = [NSCalendar currentCalendar]; // 系统语言环境
    NSDate *date = [NSDate date];// 当前系统时间
    NSTimeZone *timeZone = calendar.timeZone;// 时区

    // 根据时区提取所有数据
    NSDateComponents *dateComponents = [calendar componentsInTimeZone:timeZone fromDate:date];
    // 获取NSDate
    date = dateComponents.date;
    // 获取NSCalendar
    calendar = dateComponents.calendar;
    // 获取NSTimeZone
    timeZone = dateComponents.timeZone;

}

 

验证日期

validDate Property
- isValidDateInCalendar:

#pragma mark 验证日期
- (void)testValidatingDateValue {

    NSCalendar *calendar = [NSCalendar currentCalendar]; // 系统语言环境
    NSDate *date = [NSDate date];// 当前系统时间
    NSTimeZone *timeZone = calendar.timeZone;
    NSDateComponents *dateComponents = [calendar componentsInTimeZone:timeZone fromDate:date];

    // 能否生成日期
    BOOL isValidDate = dateComponents.validDate;
    // 日期是否存在于日历中,以及判断NSTimeZone是否存在日历中
    isValidDate = [dateComponents isValidDateInCalendar:calendar];

}

 

日期组件

era Property
year Property
month Property
day Property
hour Property
minute Property
second Property
nanosecond Property
weekday Property
weekdayOrdinal Property
quarter Property
weekOfMonth Property
weekOfYear Property
yearForWeekOfYear Property
leapMonth Property
- valueForComponent:
- setValue:forComponent:

#pragma mark 日期组件
- (void)testDateComponents {

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDate *date = [NSDate date];
    NSTimeZone *timeZone = calendar.timeZone;
    NSDateComponents *dateComponents = [calendar componentsInTimeZone:timeZone fromDate:date];
        NSLog(@"%@", [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterFullStyle timeStyle:NSDateFormatterFullStyle]);

    NSInteger component = dateComponents.era; // 公元前、公元
    component = dateComponents.year; // 年
    component = dateComponents.month; // 月
    component = dateComponents.day; // 日
    component = dateComponents.hour; // 时
    component = dateComponents.minute; // 分
    component = dateComponents.second; // 秒
    component = dateComponents.nanosecond; // 纳秒
    component = dateComponents.weekday; // 周几
    component = dateComponents.weekdayOrdinal; // 工作日的序数
    component = dateComponents.quarter;
    component = dateComponents.weekOfMonth;// 这一月的第几周
    component = dateComponents.weekOfYear;// 这一年的第几周
    component = dateComponents.yearForWeekOfYear; // 年
    component = dateComponents.leapMonth;

    // 通过NSCalendarUnit获取值
    component = [dateComponents valueForComponent:NSCalendarUnitEra];
    // 通过NSCalendarUnit设置值
    [dateComponents setValue:component forComponent:NSCalendarUnitEra];

}

 


其他

参考资料

NSDateComponents Class Reference
Date and Time Programming Guide

 

文档修改记录

时间描述
2015-10-19根据IOS9的NSDateComponents API总结

 


版权所有:http://blog.csdn.net/y550918116j

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值