NSDate, NSCalendarDate, NSDateFormatter用法

来源:互联网 发布:淘宝店铺被扣12分 编辑:程序博客网 时间:2024/05/18 09:11
NSCalendarDate(日历日期) 是NSDate 的子类, NSDate 采用是格林威治时间与北京时间相差整整八个小时!直接输出的是格林威治时间。NSDate输出是当前系统时间.  

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);

0 0
原创粉丝点击