IOS-时间与字符串互相转换

时间:2023-03-10 00:15:16
IOS-时间与字符串互相转换

有时会遇到这种问题,须要把时间和时间戳互相转换

比方把”这种格式

或者是把“”转换成“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”

接下来就是第二个:

把“”转换成“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,大功告成