的NSString的NSDate转换得到错误的结果

问题描述:

可能重复:
Wrong time from NSDateFormatter
NSDate is 5 hours off的NSString的NSDate转换得到错误的结果

我想的NSString转换成NSDate的与代码

result = @"2012-02-09"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 

NSDate *dateFromString = [[NSDate alloc] init]; 
dateFromString = [dateFormatter dateFromString:result]; 
[dateFormatter release]; 
NSLog(@"date: %@", dateFromString); 

但日期转换给不正确的结果,在日志中:

2012-02-07 13:08:29.553 Document[611:15503] date: 2012-02-08 19:00:00 +0000 

有人可以告诉我什么是错的我的代码?

+2

重复的27,000,000其他SO问题 - 你的时区是GMT +5(巴基斯坦) ,NSDate将自己记录为GMT。你的代码没有问题。如果你想从一个日期的本地字符串值,通过一个NSDateFormatter传回日期,不要记录它。 – jrturton 2012-02-07 08:27:32

+0

没有什么错 - 你只需要设置时区。 – tilo 2012-02-07 08:27:38

要使用的NSLog显示你应该用你的格式化的日期,以便将NSDate的与你的时区进行格式化:

NSLog(@"date: %@", [dateFormatter stringFromDate:dateFromString]);