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

时间:2012-06-28 08:18:55

标签: ios nsdateformatter

我遇到日期解析问题。它适用于我的设备和模拟器,但不适用于客户端设备(也是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);
    }

输出

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}

1 个答案:

答案 0 :(得分:6)

您需要将日期格式化程序上的区域设置设置为en_US_POSIX

formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];