Foundation => Objective-C - NSDate & NSCalendar

来源:互联网 发布:无线怎么开启主人网络 编辑:程序博客网 时间:2024/05/16 05:06

NSDate - 常用方法

1. 初始化
NSDate *now = [NSDate date];          ==> 只要通过 date 方法创建的对象,  就已经保存了当前的时间NSTimeZone *zone = [NSTimeZone systemTimeZone];  ===>>> 获取当前所处的时区NSInteger seconds = [zone secondsFromGMTForDate: now]  ===>>> 获取当前时区和指定时间的时间差NSDate *locationNow = [now dateByAddingTimeInterval: seconds]  ===>>>在 now 的基础上,追加时区之间的时间差,获得准确的当前时间
2. 格式转换
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";/*    y: 年     M: 月     d: 日    m: 分    H: 时 (24小时制) || h: 时 (12小时制)    s: 秒    字母区分大小写 */  
3. NSDate转NSString
NSString *str = @“2015-12-15 08:02:03 +0000”;NSDateFormatter *formatter = [[NSDateFormatter alloc]init];formatter.dateFormat = @“yyyy-MM-dd HH:mm:ss Z”;  NSDate *date = [formatter dateFromString : str];==>>>注意: 从 NSString==>>NSDate, 那么 dateFormat 的格式必须和字符串中的时间格式一致.
4. NSString转NSDate
NSSting *newTimeStr = @"2016/5/22 22:37"NSDateFormatter *formatter = [[NSDateFormatter alloc]init];formatter.dateFormat = @"yyyy/MM/dd HH:mm";NSDate *date = [formatter dateFromString: newTimeStr];NSLog(@"--%@--",date);

NSCalendar - 常用方法

1. 获取当前时间的日历格式
NSDate *now = [NSDate date];NSCalendar *calendar = [NSCalendar currentCalendar];  NSDateComponents *cmps =[calendar components:枚举类型的参数 fromDate: now];//一般情况下如果一个方法接收一个参数, 这个参数是是一个枚举 , 那么可以通过|符号, 连接多个枚举值NSCalendarUnit type = NSCalendarUnitYear |                     NSCalendarUnitMonth |                       NSCalendarUnitDay |                      NSCalendarUnitHour |                    NSCalendarUnitMinute |                    NSCalendarUnitSecond;
2. 比较两个时间差
//获得过去的时间NSString *str = @"2015-06-29 07:05:26 +0000";NSDateFormatter *formatter = [[NSDateFormatter alloc] init];formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";NSDate *date = [formatter dateFromString:str];//获得当前时间NSDate *now = [NSDate date];//比较两个时间NSCalendar *calendar = [NSCalendar currentCalendar];NSCalendarUnit type = NSCalendarUnitYear |                     NSCalendarUnitMonth |                       NSCalendarUnitDay |                      NSCalendarUnitHour |                    NSCalendarUnitMinute |                    NSCalendarUnitSecond;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);
0 0
原创粉丝点击