有时会遇到这样的问题,需要把时间和时间戳互相转换
比如把当前时间转换成 “20140716155436”这样的格式
或者是把“20140716155436”转换成“2014-07-16 15:54:36”
首先来第一个:
当前时间转换成 “20140716155436”这样的格式
///////////////////////////////
//获取当前时间
NSDate * today = [NSDate
date];
NSLog(@"%@",today);
打印出来是“2014-07-16 07:54:36 +0000”
很奇怪?现在明明是2014-07-16 15:54:36啊
因为存在不同时区,系统默认格林尼治时间
所以就要转换时间格式了
//转换时间格式
NSDateFormatter *df = [[NSDateFormatter
alloc]
init];//格式化
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString * s1 = [df
stringFromDate:today];
NSLog(@" s1s1s1s%@",s1);
打印出来是“2014-07-16 15:54:36”
现在已经获取到当前的时间
这样还没有完呢,需要转换成一个字符串,类似“20140716052021”的时间戳
NSDate * date = [df
dateFromString:s1];
//转换时间格式
NSDateFormatter *df2 = [[NSDateFormatter
alloc]
init];//格式化
[df2 setDateFormat:@"yyyyMMddHHmmss"];
[df2 setLocale:[[NSLocale
alloc] initWithLocaleIdentifier:@"zh_CN"]];
NSLog(@"%@",[df2
stringFromDate:date]);
打印出来是“20140716155436”
接下来就是第二个:
把“20140716155436”转换成“2014-07-16 15:54:36”
首先要把20140716155436转换成时间格式
//转换时间格式
NSDateFormatter *df = [[NSDateFormatter
alloc]
init];//格式化
[df setDateFormat:@"yyyyMMddHHmmss"];
[df setLocale:[[NSLocale
alloc] initWithLocaleIdentifier:@"zh_CN"] ];
NSDate *date =[[NSDate
alloc]init];
date =[df
dateFromString:bill_timeStr];
str = [NSString
stringWithFormat:@"%@",date];
str的结果是“2014-07-16 07:54:36 +0000”
这时候就需要再转一次
//
NSDateFormatter * df2 = [[NSDateFormatter
alloc]
init];
[df2 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString * str1 = [df2
stringFromDate:date];
str1的结果是“2014-07-16 15:54:36”
ok,大功告成
IOS-时间与字符串互相转换