在开发中经常会遇到和后台进行交互时时间格式的转换。
首先列举几种常见的NSDate的格式:
1 . 20150605234106格式
2. 2015-06-05 15:41:06 +0000格式(正常的输出格式)
3. 1433498400格式(以1970年起到现在的秒数)
第一种格式转换为第二种格式
//第一种时间格式
NSString* string = @"20150605234106";
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
//( 设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制)
[inputFormatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate* inputDate = [inputFormatter dateFromString:string];
//输出的是第二种格式的日期
NSLog(@"date = %@", inputDate);
第一种格式转换成第三种格式
//获取到当前的时间
NSDate * nowDate=[NSDate date];
NSLog(@"nowDate = %@",nowDate);
//输出的是第三种格式的日期
NSString * dateString=[NSString stringWithFormat:@"%.0f",[nowDate timeIntervalSince1970]];
NSLog(@"datestring = %@",dateString);
第三种格式转换成可以输出的String
//第三种格式的日期
NSString * dateString= @"1433487206";
NSDate *updatedDate=[[NSDate alloc] initWithTimeIntervalSince1970:[dateString doubleValue]];
//输出为可以显示的String (此处需要一个NSDate+Category来实现)
NSString * result=[updatedDate timeIntervalDescription];
NSLog(@"result = %@",result);
timeIntervalDescription为可选方法 可以输出为不同格式的日期显示格式- (NSString *)timeIntervalDescription;//距离当前的时间间隔描述
- (NSString *)minuteDescription;/*精确到分钟的日期描述*/
- (NSString *)formattedTime;
- (NSString *)formattedDateDescription;//格式化日期描述
不需要NSDate+Category来实现简单的转换
long long int date=1433488265;
NSDate * nowDate=[NSDate dateWithTimeIntervalSince1970:date];(没有几分钟前的提示)
提示;所得到的时间都是以0时区计算的。输出的时候需要转换时区。