NSDateFormatter在测试仪设备上使用NSInvalidValue失败,但在我的测试设备上失败

Tho*_*lin 2 nsdateformatter ios

我有日期解析的问题.它适用于我的设备和模拟器,但不适用于客户端设备(也是iPhone iOS 5.1.1,但可能是不同的配置)

    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);
    }
Run Code Online (Sandbox Code Playgroud)

哪个输出

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}
Run Code Online (Sandbox Code Playgroud)

hyp*_*ypt 6

您需要在日期格式化程序上设置区域设置en_US_POSIX.

formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
Run Code Online (Sandbox Code Playgroud)