0

可能重复:
NSDate / NSDateFormatter 在 iPhone iOS 4.3 上返回 GMT

执行以下代码时

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 对象?

4

1 回答 1

2

NSDate不存储时区,也不关心它们。NSDate仅存储自给定参考日期(2001 年 1 月 1 日)以来经过的时间。当您NSDateFormatter这样使用时,它将假定日期的时区在将字符串转换为日期对象时与用户当前的时区匹配,但是,当您使用NSLog检查日期时,它没有任何时区信息。但请记住,日期仍然正确且等于输入值。

于 2012-10-19T19:46:39.017 回答