初始化
//创建出来一个时间获取系统当前时间
NSDate* date = [NSDatedate];
NSDate* date1 = [NSDatenew];//等价于上面的写法
NSDate* date2 = [[NSDatealloc]init];//也等价于上面的写法
变化
//用一个时间加上多少秒产生另一个时间
NSDate * tomorrow = [date dateByAddingTimeInterval:24*60*60];
//用一个时间加上一个负数,相当于减去多小秒产生一个之前的时间
NSDate * yesterday = [date dateByAddingTimeInterval:-24*60*60];
比较
//可以用compare来比较时间的先后,
//NSComparisonResult创建一个接收比较结果的对象
NSComparisonResult rst = [tomorrow compare:yesterday];
//返回较早的时间(之前的时间会较早)
NSDate * dateEarly = [tomorrow earlierDate:yesterday];
//返回较晚的时间(之后的时间较晚)
NSDate * dateLater = [tomorrow laterDate:yesterday];
#过去和未来的时间
//遥远的未来的时间
NSDate * date10 = [NSDate distantFuture];
//遥远的过去的时间
NSDate * date11 = [NSDate distantPast];
时间差
//返回一个时间差两个时间相距多长时间以秒为单位
//NSTimeInterval定义的其实是一个double类型的数据,这是这类型的数据系统会认为它是时间
NSTimeInterval time = [yesterday timeIntervalSinceDate:tomorrow];
格式化
//创建一个日期转化格式的对象
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
//自定义日期转换格式(formatter对象的具体格式)
//yyyy表示年,MM表示月,dd表示天,HH表示24小时制得时(hh表示12小时制)mm表示分,ss表示秒。
//(大小写是不可以变得)
[formatter setDateFormat:@"yyyy-MM-dd,HH:mm:ss”];
//把系统当前时间转换为字符串
NSString * strDate = [formatter stringFromDate:date];//($
$ $ $)格式换接收(时间)字符
//把字符串的时间转化为NSDate时间
NSDate * date12 = [formatter dateFromString:strDate];//也是要使用转化的格式的
日历和时间
//日期的分开输入
NSCalendar * calendar = [NSCalendar currentCalendar];//创建一个日历用来接收时间
//输入时区
NSTimeZone * timezone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
//创建时间组件
NSDateComponents * components = [[NSDateComponents alloc]init];
[components setTimeZone:timezone];
[components setYear:2008];
[components setMonth:8];
[components setDay:8];
[components setHour:16];
[components setMinute:8];
[components setSecond:8];
NSDate * beijingOlmpicGamesTime = [calendar dateFromComponents:components];
同样的这一个日历也可以反着来
//初始化日历类:可以通过calendar来从一个NSDate类型的数据中获取年、月、日
NSCalendar* calendar = [NSCalendarcurrentCalendar];
//获取当前时间
NSDate
* currentDate = [NSDatedate];
//使用calendar获取年、月、日
(这一个像是在其内提取数据)
//并且选取的参数是多选(位移枚举)
NSDateComponents* components = [calendar components:
NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDayfromDate:currentDate];
NSIntegeryear = components.year;
NSIntegermonth = components.month;
NSInteger day = components.day;
时区
这样可以获得所有的时区
NSArray * arr = [NSTimeZone knownTimeZoneNames];