2
我有日期解析问题。它适用于我的设备和模拟器,而不是客户端设备上(这也是iPhone的iOS 5.1.1,但也许不同的配置)NSDateFormatter在测试设备上失败,NSInvalidValue失败,但在我的测试设备上失败
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSDate *date = nil;
NSError *error = nil;
[formatter setDateFormat:@"EEE, dd MMM y HH:mm:ss zzz"];
if (![formatter getObjectValue:&date forString:@"Mon, 21 Jun 2012 21:21:21 GMT" range:nil error:&error])
{
NSLog(@"%@", error);
}
其输出
Error Domain=NSCocoaErrorDomain Code=2048 "The operation couldn’t be completed. (Cocoa error 2048.)" UserInfo=0x446f10 {NSInvalidValue=Mon, 21 Jun 2012 21:21:21 GMT}
非常感谢!任何想法为什么它可以在模拟器和设备上工作,但不是测试器设备?我甚至尝试过多种语言 –
这取决于语言环境。如果用户在其设置中设置了该值,iOS会更改您的格式字符串以添加AM/PM,而不是使用24小时时钟。 'en_US_POSIX'语言环境不是这种情况。 – hypercrypt
非常感谢。这节省了数小时的一个疯狂的bug,只会影响英国的客户,而不会影响北美的开发人员。 – Jeremy