有人可以向我解释一下吗?我已经看到了很多关于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模拟器中一切正常。我已经将模拟器重置为默认值,更改了时区和语言,没有任何结果。
我应该在项目设置中设置一些内容吗?
答案 0 :(得分:2)
检查您正在使用的操作系统版本。在iOS 4中对NSDateFormatter进行了一些更改。具体来说,它用于在日期之后丢弃字符串中的任何文本,并返回日期。现在,如果那里有垃圾,它返回零。由于iPad sim运行3.2,并且可能是你的iPhone sim运行4.0,这很可能是问题所在。