可能重复:
NSDate / NSDateFormatter returning GMT on iPhone iOS 4.3
执行以下代码时
NSString *inputDateString=@"2012-10-19 19:37:54";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *test=[formatter dateFromString:inputDateString];
“test”的值是2012-10-19 23:37:54 +0000而不是相当于inputDateString的日期值。为什么日期被转换为GMT?
编辑:如何获取输入字符串日期并将其转换为等效的NSDate对象?
答案 0 :(得分:2)
NSDate
不存储时区,也不关心它们。 NSDate
仅存储自给定参考日期(2001年1月1日)以来经过的时间。当您像这样使用NSDateFormatter
时,它会假设在将字符串转换为日期对象时,日期的时区与用户当前时区匹配,但是,当您使用NSLog
检查日期时,它没有任何时区信息。但请记住,日期仍然正确并且等于输入值。