// date方法返回的就是当前时间(now)
NSDate *date = [NSDate date];
// now: 11:12:40
// date: 11:12:50
date = [NSDate dateWithTimeIntervalSinceNow:10];//返回当前时间10秒后的时间
// 从1970-1-1 00:00:00开始
date = [NSDate dateWithTimeIntervalSince1970:10];//返回1970-1-1 00:00:00时间10秒后的时间
// 随机返回一个比较遥远的未来时间
date = [NSDate distantFuture];
// 随机返回一个比较遥远的过去时间
date = [NSDate distantPast];
// 返回1970-1-1开始走过的毫秒数
NSTimeInterval interval = [date timeIntervalSince1970];
// 跟其他时间进行对比
NSDate *date2 = [NSDate date];
// 返回比较早的那个时间
[date earlierDate:date2];
// 返回比较晚的那个时间
[date laterDate:date2];
//获取两个时间的时间差
[date1 timeIntervalSinceDate date2];
NSDate *date = [NSDate date];
// 2013-04-07 11:14:45
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// HH是24进制,hh是12进制
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
// formatter.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"] autorelease];
NSString *string = [formatter stringFromDate:date];
NSLog(@"%@", string);
// 返回的格林治时间
NSDate *date2 = [formatter dateFromString:@"2010-09-09 13:14:56"];
2、对时间的操作
NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:3600.0*10];//从当前时间开始,若干秒后的时间,参数代表秒
NSDate *date2 = [date1 dateByAddingTimeInterval:60];//以某个时间为标准,加上若干秒后的时间
NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1000];//从1970年开始,经过了若干秒的时间计算时间间隔
3、计算时间间隔
NSTimeInterval interval = [date timeIntervalSince1970];//从1970年到某一时间的秒数
NSTimeInterval interval1 = [date1 timeIntervalSinceDate:date];//计算两个时间的间隔(秒)
NSTimeInterval interval2 = [date1 timeIntervalSinceNow];//获取某一时间与当前时间的间隔
NSLog(@"%lf",interval1);
4、时间比较
NSDate *date4 = [date laterDate:date1];//获取两个时间较晚的(距离1970年时间较长的)
NSDate *date5 = [date earlierDate:date1];
DateFormatter时间格式
5、字符串与时间之间的相互转换
NSDateFormatter *formater = [[NSDateFormatter alloc] init];
[formater setDateFormat:@"yyyy-MM-dd h:mm:ss "];//设置时间显示的格式,此处使用的formater格式要与字符串格式完全一致,否则转换失败
NSString *dateStr = [formater stringFromDate:date1];//将日期转换成字符串
NSLog(@"%@",dateStr);
NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
[formatter1 setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];//此处使用的formater格式要与字符串格式完全一致,否则转换失败
[formatter1 setTimeZone:[NSTimeZone localTimeZone]];//将字符串转换成日期
NSString *str = @"2015年11月11日 11:11:11";
NSDate *date6 = [formatter1 dateFromString:str];
NSLog(@"%@",date6);
6、时区
NSTimeZone *zone = [NSTimeZone systemTimeZone];//获取系统时区
[formater setTimeZone:zone];//设置时区
NSInteger timeOff = [zone secondsFromGMT];//获取系统时区的格林时差
NSLog(@"%f",timeOff/3600.0);
NSDate *date7=[formatter1 dateFromString:str];
NSDate *date8 = [date7 dateByAddingTimeInterval:timeOff];
NSLog(@"%@",date8);
7、消除时间差
NSString *str=@"2015年11月10日 11:11:11";
NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
NSDate *date=[formatter dateFromString:str];
NSLog(@"%@",date);
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSDate *date1=[formatter dateFromString:str];
NSLog(@"%@",date1);
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *date2=[formatter dateFromString:str];
NSLog(@"%@",date2);
NSInteger timeoff=[[NSTimeZone localTimeZone] secondsFromGMT];
NSDate *date3=[date dateByAddingTimeInterval:timeoff];
NSLog(@"%@",date3);
8、与之相差的data
NSDate *data=[[NSData alloc]init];
NSString *str=@"1234";
NSData *data1=[str dataUsingEncoding:NSUTF8StringEncoding];//将字符串转换成data,NSUTF8StringEncoding代表编码格式。
NSString *str1=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//data转换为字符串
NSLog(@"%@",data1);//输出data类型
NSLog(@"%zi",data1.length);//输出data长度
NSData *data2 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.iconpng.com/png/ios7- premium/tree11.png"]];//获取网络数据
NSLog(@"%@",data2);
NSMutableData *data3 = [NSMutableData data];//创建一个空的数据
[data3 appendData:data];//拼接data
NSLog(@"%@",data3);