NSData/NSMutableData
/*
1.计算机中文件分为哪几种?
二进制文件 和 文本文件 ,其中我们的图片、视频、音频等就是二进制文件,像’.txt’的文件就是文本文件
2.客户端与服务器端,或者客户端与客户端数据交流的格式为二进制(字节流)
在我们OC中用什么类存储?即‘NSData’类。在NSData类中,由其实例化的对象,此对象包含了大量的字节,这些字节就是我们客户端想要的信息
*/
//初始化
// 创建一个空的data
NSData *data1 = [NSData data];
//将字符串转换成NSData
const char *str = "Hello";
//用const把str变为常量
// str[0] = 'd'; //使用const这个关键字来将一个变量变为常量。const修饰的常量也称为‘命名常量’或者‘符号常量’ 一旦被初始化之后,字符串就不能修改了。(不用const str[0] = 'd'就可以把H换成d).
NSData *data2 = [NSData dataWithBytes:str length:strlen(str)];
//将OC中的字符串转换成NSData
NSString *string= @"你好吗";
NSData *data3 = [string dataUsingEncoding:NSUTF8StringEncoding];
//将本地文件中的数据转换成data
NSData *data4 = [NSData dataWithContentsOfFile:@"/Users/ibokan/Desktop/OC_X/OC_09/OC_09/EOHC9C](`BU(2GZ]WTPK_`V.jpg"];
// NSLog (@"%@",data4);
//将数据写入本地文件
// BOOL flag = [data4 writeToFile:@"/Users/ibokan/Desktop/anglababy.png" atomically:YES];
// if (flag) {
// NSLog(@"写入成功");
// }
//求data 的字节长度
NSUInteger length = data4.length;
NSLog(@"%lu",length);
//创建一个空的data NSMutableData
NSMutableData *mData = [NSMutableData data];
//增加Data
[mData appendData:data4];```
//NSDate
//在OC中,Foundation框架为我们提供了强大的时间操作类’NSDate’,该类封装了各种处理时间和日期的API
//获取系统当前时间(GMT 格林尼治时间,与北京时间相差8小时 北京时间 = GMT+8)
NSDate *date1 = [NSDate date];
NSLog(@"%@",date1);
//(NSTimeInterval) 是一个以秒为单位的时间片,也叫 时间戳
NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:120];//在当前GMT时间基础上加2分钟,也可以减2分钟 -120
NSLog(@"%@",date2);
//距离1970.1.1日期timeInterval时间戳的时间
NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:120];
NSLog(@"%@",date3);
//距离sinceDate日期timeInterval时间戳的时间
NSDate *date4 = [NSDate dateWithTimeInterval:120 sinceDate:[NSDate date]];
NSLog(@"%@",date4);
//通过时间追加创建NSDate
NSDate *date5 = [date4 dateByAddingTimeInterval:120];
NSLog(@"%@",date5);
//日期比较
//1.两个日期的时间戳
NSTimeInterval timeIntervalSince1970 = [[NSDate date]timeIntervalSince1970];
NSLog(@"timeIntervalSince1970 = %f",timeIntervalSince1970);
//
NSTimeInterval timeIntervalSinceNow = [[NSDate date]timeIntervalSinceNow];
NSLog(@"timeIntervalSinceNow = %f",timeIntervalSinceNow );
//
NSDate *dateNow = [NSDate date];
// NSDate *dateSinceOneHour = [NSDate dateWithTimeIntervalSinceNow:-3600+8*3600];
// NSLog(@"%@",dateNow);
// NSLog(@"%@",dateSinceOneHour);
NSDate *dateHourAgo = [dateNow dateByAddingTimeInterval:-3600];
//判断两个日期是否相等
BOOL flag1= [dateNow isEqualToDate:dateHourAgo];
if (flag1) {
NSLog(@"dateNow = dateHourAgo");
}
NSDate *date6 = [dateNow earlierDate:dateHourAgo];
if ([date6 isEqualToDate:dateHourAgo]) {
NSLog(@"dateHourAgo 是较早时间");
}else{
NSLog(@"dateNow 是较早时间");
}
NSDate *date7 = [dateNow laterDate:dateHourAgo];
if ([date7 isEqualToDate:dateHourAgo]) {
NSLog(@"dateHourAgo 是较晚时间");
}else{
NSLog(@"dateNow 是较晚时间");
}
NSComparisonResult comparisonresult = [dateNow compare:dateHourAgo];
switch (comparisonresult) {
case NSOrderedAscending:{
NSLog(@"dateNow < dateHourAgo");
break;
}
case NSOrderedSame:{
NSLog(@"dateNow = dateHourAgo");
break;
}
case NSOrderedDescending:{
NSLog(@"dateNow > dateHourAgo");
break;
}
default:
break;
}
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc]init];
components.year = 2016;
components.month = 8;
components.day = 12;
components.hour = 12+8;
components.minute = 14;
components.second = 41;
NSDate * date8 = [currentCalendar dateFromComponents:components];
NSLog(@"%@",date8);
//时区
//NSTimeZone
//列出所有的时区
// NSArray *array = [NSTimeZone knownTimeZoneNames];
// NSLog(@"array = %@",array);
//指定名称参数创建一个时区
NSTimeZone *timeZone1 = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
//指定时区缩写创建一个时区
NSTimeZone *timeZone2 = [NSTimeZone timeZoneWithAbbreviation:@"PRC"];
// NSLog(@"%@",timeZone1);
// NSLog(@"%@",timeZone2);
//如何将日期NSDate转换成字符串类型
NSDateFormatter *dateFormatter = [NSDateFormatter new];
//设置时区(默认时区)
dateFormatter.timeZone = [NSTimeZone defaultTimeZone];
//设置时间输出格式
// [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormatter setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];
NSString *string1 = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"%@",string1); //输出了当前的北京时间
//如何将字符串转换成NSDate类型
NSString *string2 = @"2016-08-12 16:00:00";
//设置时区
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];//UTC为世界调整时间
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date9 = [dateFormatter dateFromString:string2];
// NSLog(@"%@",date9);
//
NSTimeInterval timeInterval = date9.timeIntervalSinceNow;
// NSLog(@"%f",-timeInterval);
int m = (int)-timeInterval/60; //date9距离现在的分钟数
NSLog(@"m = %d",-m);
// NSTimeInterval timeInterval2 = [[NSDate date]timeIntervalSince1970];
// NSLog(@"%f",timeInterval2);
运行结果不为大家放了,大家可以看看代码,若有什么问题,欢迎大家提出,谢谢