原创Blog,转载请注明出处
blog.csdn.net/hello_hwc
欢饮关注我的iOS SDK详解专栏
http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html
前言:NSCalendar 和 NSDateComponents是有关iOS 时间相关API很重要的两个类。最近刚好用到,这里就整理下。
概念
- NSCalendar 顾名思义就是日历,封装了系统如何按照年月日的方式来组织时间,组织时间的方式和地区,时区有很大关系
- NSDateComponents 只是一个容器,容器中详细包含了年月日时分等信息。
- NSDate 就是一个绝对的时间,可以换算成相对1970s的时差。
举例
拆分一个时间
OC
NSDate * date = [NSDate date];//当前时间
NSCalendar * calendar = [NSCalendar currentCalendar];//当前用户的calendar
NSDateComponents * components = [calendar components:NSCalendarUnitMinute | NSCalendarUnitMonth | NSCalendarUnitHour | NSCalendarUnitDay fromDate:date];
NSLog(@"%ld月%ld日%ld时%ld分" ,(long)components.month,(long)components.day,(long)components.hour,(long)components.minute);
Swift
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(NSCalendarUnit.CalendarUnitMonth | NSCalendarUnit.CalendarUnitDay | NSCalendarUnit.CalendarUnitHour | NSCalendarUnit