iOS:时间format之后被加了8小时(UTC)

1.时间format问题

接口返回的一个正确的时间,通过YYKit的NSObject+YYModel将返回的数据转为了model,而其中的时间直接转为了NSDate格式。

但是通过打印

DLog(@"%@",recordModel.createTime);

DLog(@"%@",[recordModel.createTime stringWithFormat:@"yyyy.MM.dd HH:mm:ss"]);

发现返回的时间分别为

2019-02-20 09:25:42 +0000

2019.02.20 17:25:42

第一个时间是正确的,但是format之后的时间不正确,被加上了8小时。

这个时候进行format需要加上UTC。

将format的语句写成

DLog(@"%@",[recordModel.createTime stringWithFormat:@"yyyy.MM.dd HH:mm:ss"timeZone:[NSTimeZone timeZoneWithName:@"UTC"] locale:nil]);

即可。

上面的这些内容依赖于YYKit

或者写成这样的

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

[formattersetDateFormat:@"yyyy.MM.dd HH:mm:ss"];

[formattersetTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

DLog(@"%@",[formatter stringFromDate:recordModel.createTime]);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容