NSDate ,NSCalendar一些用法
NSDate *date = [NSDate date];
[date dateByAddingTimeInterval: ]//通过加减秒数来改变date的值
这里一般需要用到日期格式器NSFormatter类 NSFormatter *formatter = [NSFormatter alloc]init];
[formatter setDateStyle: ]//设置系统时间格式
[formatter setDateFormat:];//自定义时间格式(格式要规范)
G: 公元时代,例如AD公元
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: 毫秒
[formatter setTimeStyle:]//设置时间格式
//NSLocale地区类
NSLocale *loca1 = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_CH"];
NSLocale *loca2 = [[NSLocale alloc]initWithLocaleIdentifier:@"en_US"];
//[formattter setLocale]//设置地区格式
NSString *str = [formatter stringFromDate:date]//将日期通过设置好的格式器转换成字符串
同样的NSString也可以通过格式器转换成NSDate格式
NSDate *date1 = [formatter dateFromstring: ];
NSCalendar 和 NSDateComponents
NSCalendar *calendar =[NSCalendar currentCalendar];//通过系统日历信息创建日历
//设置一个包含指定日期组件的unitFlags
unsigned unitFlags =
NSCalendarUnitEra |
NSCalendarUnitYear |
NSCalendarUnitMonth |
NSCalendarUnitDay |
NSCalendarUnitHour |
NSCalendarUnitMinute |
NSCalendarUnitSecond |
NSCalendarUnitWeekday ;
//按照指定NSCalendar格式获取date的日期组件components
NSDateComponents *comp = [ calendar components:unitFlags fromDate:date];
就可以读取comp.era,comp.year,.....
同样的NSComponents也可以用来组成一个NSDate
NSDateComponents *comp2 = [ NSDateComponents alloc]init];
//设置comp2
comp2.year = 2016,comp2.month = 07,comp2.day = 28,........
//将日期组件通过calendar转换成date2
NSDate *date2 = [calendar dateFromComponents:comp2];
NSLog(@"日期:%@",date2);
总结:NSDate 和 NSString可以通过NSFormatter相互转换
NSDate 也可以通过NSCalendar来与NSCompoents相互转换