NSDate和NSDateFormatter
在iOS开发中,NSDate的使场景很多,例如:聊天程序里:二分钟前,昨天,几天前的计算;网络请求中的时间戳;
NSDate是Cocoa中用于处理日期和时间的基础类,封装了某一给定的时刻(含⽇期,时间,时区)。
使用+date方法获取当前时间
例如:NSDate *nowDate = [NSDate date];
注意NSLog(@“%@”,nowDate);无论你是哪个时区的时间,打印时总是打印对应的0时区时间。
NSTimeInterval
NSTimeInterval(即double类型)用以表示以秒为单位的时间间隔,可以使用-initWithTimeIntervalSinceNow:方法传入一个NSTimeInterval参数,创建一个NSDate对象
例如:NSDate * tomorrowDate = [[NSDate alloc] initWithTimeIntervalSinceNow:24*60 * 60];
NSDate * yesterdayDate = [[NSDate alloc] initWithTimeIntervalSinceNow:-1 * 24*60 *60];
取两个时间对象的间隔:NSTimeinterval = [tomorrowDate timeIntervalSinceDate:yesterdayDate];
NSDateFormatter是iOS中的日期格式类,功能是实现NSString和NSDate的互转。
常见的时间格式化字符串有以下⼀些:y年, M年中的月份、d份中的天
数,H一天中的小时数(0-23)、 h am/pm 中的小时数(1-12)、m小时中的分钟
数、s分钟中的秒数 等
指定日期格式:NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
日期转化为字符串:
NSDateFormatter*formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *dateString=[formatter stringFromDate: [NSDate date]];
时间字符串转化为相对应的日期:
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString * dateStr = @”2008-08-08 20:08:08”;
NSDate * date = [formatter dateFromString:dateStr];