NSCalendar:允许你展示一个特殊的日历,比如Gregorian(公历)或Hebrew历(包括中国农历),它提供了大部分的日期计算接口,并且允许你在NSDate和NSDateComponents之间转换
NSDateComponents允许你展示一个特殊日期的不同部分,比如hour,minute,day,year等等。
NSTimeZone表示时区信息
NSDateFormatter用来在日期和字符串之间转换
可以认为NSDate表示的是绝对的数值,而NSCalendar,NSTimeZone和NSDateFormatter则表示了怎么来解释这个数值。
NSDate:
NSDate是一个抽象的概念,独立于locals,timezones和calendars,也可以认为它表示的就是公历的GMT时间 (NSLog打印的时候都会显示GMT时间)。它的单位是NSTimeInterval,用秒来表示。NSDate用相对于2001年1月1日(GMT) 的秒来计算时间,早于这个时间用负值来表示,晚于这个时间为正值。NSDate的方法timeIntervalSinceReferenceDate就是 指相对于这个日期的秒数。
//获取本地时间
NSDate *currentDate = [NSCalendarDatedate];
NSLog(@"本地时间: %@", currentDate);
// 获取昨天的日期
NSDate *yesterdayDate = [[NSCalendarDatedate] dateByAddingTimeInterval:-24 *60 * 60];
NSLog(@"昨天时间: %@", yesterdayDate);
// 获取明天时间(��字符串指定时间)
NSDate *tomorrowDate = [NSDatedateWithString:@"2014-08-19 00:00:00 +0000"];
NSLog(@"明天时间: %@", tomorrowDate);
//使用指定格式的时间字符串创建时间对象
NSDateFormatter *formatter = [[NSDateFormatteralloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *formatter2 = [formatter dateFromString:@"2014-05-17 00:00:00"];
NSLog(@"NSDateFormatter时间: %@", formatter2);
NSString *formatter3 = [formatter stringFromDate:formatter2];
NSLog(@"NSDateFormatter字符串获取时间: %@", formatter3);
// 使用��字符串创建时间
NSDate *date = [NSCalendarDatedateWithString:@"4 Mar 2014"calendarFormat:@"%d %b %Y"];
NSLog(@"NSDate使用字符串创建时间: %@", date);
NSDate *earlierDate = [yesterdayDate earlierDate:currentDate];//获取两个日期中比较早的日期.返回yesterday
NSLog(@"较早的日期: %@", earlierDate);
NSDate *laterDate = [tomorrowDate laterDate:yesterdayDate];//获取两个日期中比较晚的日期.返回tomorrow
NSLog(@"较晚的日期: %@", laterDate);
//根据format字符串,将当前日期转换成指定时区的calendarDate
NSCalendarDate * cDate = [currentDatedateWithCalendarFormat:@"%d %b %Y"timeZone:[NSTimeZonelocalTimeZone]];
NSLog(@"将当前日期转换成指定时区的calendarDate: %@", cDate);