NSDateFormatter NSString转NSDate 出现 8小时偏差解决方法

转载自:http://zani.iteye.com/blog/1144903

NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间


平常做项目服务器返回的都是本地时间也就是中国时区的时间,而NSDate存储的是世界标准时(UTC),如果转化为NSDate就会出现八小时的偏差。

解决方法如下:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];  
	[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
    [dateFormatter  setDateFormat:@"yyyy-MM-dd HH:mm:ss"];  
 
	
    NSDate* dateFromString = [dateFormatter dateFromString:stringDate];  
	
    return dateFromString; 


无论环境是使用12小时制还是24小时制,yyyy-MM-dd HH:mm:ss返回都是24小时制

设置TimeZone为UTC ,这样使得转换时间不会出现8小时误差


你可能感兴趣的:(iOS基础)