常用的时间格式
formatter.dateFormat =@"yyyy年MM月dd日 HH时mm分ss秒 Z";
formatter.dateFormat =@"yyyy/MM/dd HH/mm/ss Z";
formatter.dateFormat =@"MM-dd-yyyy HH-mm-ss";
// 时间字符串NSString*str =@"2014-03-11 06:44:11 +0800";?
// 1.创建一个时间格式化对象
NSDateFormatter*formatter = [[NSDateFormatteralloc] init];
// 2.格式化对象的样式/z大小写都行/格式必须严格和字符串时间一样
formatter.dateFormat =@"yyyy-MM-dd HH:mm:ss Z";
// 3.利用时间格式化对象让字符串转换成时间 (自动转换0时区/东加西减)
NSDate*date = [formatter dateFromString:str];
NSLog(@"%@",date);
3.时间转换成字符串
NSDate*now = [NSDatedate];
// 1.创建一个时间格式化对象
NSDateFormatter*formatter = [[NSDateFormatteralloc] init];
// 2.设置时间格式化对象的样式
formatter.dateFormat =@"yyyy年MM月dd日 HH时mm分ss秒 +0800";
// 3.利用时间格式化对象对时间进行格式化
NSString*str = [formatter stringFromDate:now];
NSLog(@"%@",str);
4.利用日历比较两个时间的差值
// 时间字符串
NSString*str =@"2012-03-11 06:44:11 +0800";
// 1.创建一个时间格式化对象
NSDateFormatter*formatter = [[NSDateFormatteralloc] init];
// 2.格式化对象的样式/z大小写都行/格式必须严格和字符串时间一样
formatter.dateFormat =@"yyyy-MM-dd HH:mm:ss Z";
// 3.字符串转换成时间/自动转换0时区/东加西减
NSDate*date = [formatter dateFromString:str];
NSDate*now = [NSDatedate];
// 注意获取calendar,应该根据系统版本判断
NSCalendar*calendar = [NSCalendarcurrentCalendar];NSCalendarUnittype =NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;
注意:使用[NSCalendar currentCalendar],iOS8以后会有bug,要加判断
// 判断方法一:
// 宏书写注意:建议不要全是小写,要有大写,否则书写时候参数有ken'neng不提示
#define iOS(version) ([UIDevice currentDevice].systemVersion.doubleValue >= (version))
NSCalendar*calendar =nil;
if([UIDevicecurrentDevice].systemVersion.doubleValue >=8.0) {? ??
calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
}else{? ?
?calendar = [NSCalendarcurrentCalendar];
}
// 判断方法二:
NSCalendar*calendar =nil;
// NSCalendar不提示这个respondsToSelector:方法,但是的确有这个方法if([NSCalendarrespondsToSelector:@selector(calendarWithIdentifier:)]) {? ??
calendar = [NSCalendarcalendarWithIdentifier:NSCalendarIdentifierGregorian];
}else{? ?
?calendar = [NSCalendarcurrentCalendar];
}
// 4.获取了时间元素
NSDateComponents*cmps = [calendar components:type fromDate:date toDate:now options:0];
NSLog(@"%ld年%ld月%ld日%ld小时%ld分钟%ld秒钟", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second);
//时间相加:先把时间转换成timeInterval,然后再用方法dateByAddingTimeInterval相加,就得到了新的时间
int addDays = 10;
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *myDate = [dateFormatter dateFromString:@"2015-06-03"];
NSDate *newDate = [myDate dateByAddingTimeInterval:60 * 60 * 24 * addDays];
NSLog(@"%@",[dateFormatter stringFromDate:newDate]);