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