日期处理
- NSString 与 NSDate 转换
使用NSDateFormatter
日期格式说明: yy: 年的后2位
yyyy: 完整年
MM: 月,显示为1-12
MMM: 月,显示为英文月份简写,如 Jan
MMMM: 月,显示为英文月份全称,如 Janualy
dd: 日,2位数表示,如02
d: 日,1-2位显示,如 2
EEE: 简写星期几,如Sun EEEE: 全写星期几,如Sunday aa: 上下午,AM/PM H: 时,24小时制,0-23 K:时,12小时制,0-11 m: 分,1-2位
mm: 分,2位 s: 秒,1-2位 ss: 秒,2位 S: 毫秒
例如:2016-05-01 12:32:30 yyyy-MM-dd HH:mm:ss
NSDateFormatter *fm = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone localTimeZone];
[fm setTimeZone:timeZone];
//设置日期的转换格式
[fm setDateFormat : @"yyyy-MM-dd HH:mm"];
NSDate *date = [fm dateFromString:];
NSString *string = [fm stringFromDate:];
- NSCalendar与NSDateComponents 用于日期的比较:
注意: calendarWithIdentifier(ios8以后才有)
objectivecNSDateFormatter *fm = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone localTimeZone];
[fm setTimeZone:timeZone];
[fm setDateFormat : @"yyyy-MM-dd HH:mm"];
NSDate *toDate = [fm dateFromString:firstToDate];
NSDate *fromDate = [fm dateFromString:secoud];
NSCalendar *calendar = [NSCalendar calendarWithIdentifier:NSGregorianCalendar];
//日期单元
NSUInteger unitFlags = NSCalendarUnitYear | NSMonthCalendarUnit | NSDayCalendarUnit | NSCalendarUnitHour | NSCalendarUnitMinute; NSDateComponents *components = [calendar components:unitFlags fromDate:toDate toDate:fromDate options:NSCalendarWrapComponents];