NSDateformatter在iPhone上给出'null',在iPad上给出正确的日期

时间:2010-10-19 10:20:30

标签: iphone ios-simulator nsdateformatter

有人可以向我解释一下吗?我已经看到了很多关于DateFormatter的问题,而且似乎都是相关的,但不完全是我在这里面临的问题。

请考虑以下代码:

NSString * CleanDate = @"20101117T020000-0000";
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd'T'HHmmssZ"];  
NSDate * date = [dateFormatter dateFromString:cleanDate];

NSLog(@"CleanDate: %@, Date: %@",cleanDate, date );

iPhone模拟器上的日志输出

CleanDate:20101117T020000-0000,日期:( null)

在iPad模拟器上它是

CleanDate:20101117T020000-0000,日期:2010-11-17 03:00:00 +0100

在真实设备上的结果相同。有趣的是,昨晚在iPhone模拟器中一切正常。我已经将模拟器重置为默认值,更改了时区和语言,没有任何结果。

我应该在项目设置中设置一些内容吗?

1 个答案:

答案 0 :(得分:2)

检查您正在使用的操作系统版本。在iOS 4中对NSDateFormatter进行了一些更改。具体来说,它用于在日期之后丢弃字符串中的任何文本,并返回日期。现在,如果那里有垃圾,它返回零。由于iPad sim运行3.2,并且可能是你的iPhone sim运行4.0,这很可能是问题所在。