OC学习 第十三章 NSDate、NSData常用方法
一、NSDate常用方法:
1.获取当前时间:
NSDate *date = [[NSDatealloc]init];
NSLog(@"date = %@",date);
2.获取当前时间过一段时间后的时间:
NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:-120];
NSLog(@"date1 = %@",date1);
3.从1970年开始经过一段时间后的时间:
NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:1800];
NSLog(@"date2 = %@",date2);
4.从指定时间开始经过一段时间后的时间:
NSDate *date3 = [date dateByAddingTimeInterval:1800];
NSLog(@"date3 = %@",date3);
5. 获取某个时间到现在两个时间的差
NSTimeInterval time = [[NSDate date]timeIntervalSinceDate:date1];
NSLog(@"时间差%f",time);
6.获取两个给定时间的时间差
NSDate *date4 = [NSDate dateWithTimeIntervalSince1970:1860];
NSLog(@"date4 = %@",date4);
NSLog(@"date4 = %@",date4);
NSTimeInterval time2 = [date4 timeIntervalSinceDate:date2];
NSLog(@"%f",time2);
7.日期对象转化为字符串:
NSDateFormatter *formmat = [[NSDateFormatter alloc]init];//初始化一个日期格式。
[formmat setDateFormat:@"yyyy年MM月dd日HH时mm分ss秒"];//设置日期格式
NSString *str1 = [formmat stringFromDate:date4];//导入日期。
[formmat setDateFormat:@"yyyy年MM月dd日HH时mm分ss秒"];//设置日期格式
NSString *str1 = [formmat stringFromDate:date4];//导入日期。
NSLog(@"%@",str1);
8.字符串转化为日期对象:
NSString *str2 = @"2015-11-12 11:11:11";
NSDateFormatter *fo = [[NSDateFormatter alloc]init];
[fo setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date5 = [fo dateFromString:str2];
NSDateFormatter *fo = [[NSDateFormatter alloc]init];
[fo setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date5 = [fo dateFromString:str2];
NSLog(@"%@",date5)
9.获取系统时区: NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSLog(@"%@",zone);
10.系统时区缩写: NSString *str = [zone abbreviation];
NSLog(@"%@",str);
11.获取当地时区: NSTimeZone *localZone = [NSTimeZone localTimeZone];
NSLog(@"%@",localZone)
12.和格林尼治时间差: NSInteger timeoff = [zone secondsFromGMT];
NSLog(@"%zi",timeoff);
13.时差转化: date = [date dateByAddingTimeInterval:timeoff];
NSLog(@"%@",date);
二、字符串转化为日期时有时差解决方法(三种)
1. NSString *str1 = @"2015/11/11 11:11:11";
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];(设置时区方法1)
[formatter setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
NSDate *date1 = [formatter dateFromString:str1];
NSDate *date1 = [formatter dateFromString:str1];
NSLog(@"%@",date1);
2.
NSString *str1 = @"2015/11/11 11:11:11";
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];(设置时区方法2)
[formatter setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
NSDate *date1 = [formatter dateFromString:str1];
NSDate *date1 = [formatter dateFromString:str1];
NSLog(@"%@",date1);
以上两种基本相同,只不过设置时区方法不同。
3.利用timeoff转化
三、NSData常用方法:
NSData:用来存储二进制数据类型。Cocoa实现缓冲区存储
NSString *str = @"1234";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];//不可变
//将字符串转换陈data;NSUTF8StringEncoding代表编码格式。
NSString *str1 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//data转化为data
NSLog(@"%zi",data.length);//数据长度
NSData *data1 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"www.。。。。。"]];//获取网络数据
NSMutableData *data2 = [NSMutableData data];//创建一个空的数据;
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];//不可变
//将字符串转换陈data;NSUTF8StringEncoding代表编码格式。
NSString *str1 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//data转化为data
NSLog(@"%zi",data.length);//数据长度
NSData *data1 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"www.。。。。。"]];//获取网络数据
NSMutableData *data2 = [NSMutableData data];//创建一个空的数据;
[data2 appendData:data];//拼接data