考慮下面的代碼串:NSDateFormatter失敗,這似乎正確
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSLog(@"Date from String: %@", [formatter dateFromString:@"2013-09-08T00:36:40"]);
日誌生成:日期從字符串:(空)
對於從它的工作原理相同來源的其他字符串,但我米沒有看到爲什麼在這種情況下失敗。
有人能教導我嗎?
更新:如下我已經更新了代碼,仍然失敗:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:locale];
NSDate *date = nil;
NSError *error = nil;
[formatter getObjectValue:&date
forString:@"2013-09-08T00:36:40"
range:NULL
error:&error];
NSLog(@"Date from String: %@", date);
NSLog(@"Error: %@", error);
輸出: 2014-03-31 15:27:01.697無題:從字符串[30859 507]日期: (null) 2014-03-31 15:27:01.710無標題[30859:507]錯誤:錯誤域= NSCocoaErrorDomain代碼= 2048「值」2013-09-08T00:36:40「無效。的UserInfo = {0x7f89d8e04cd0 = NSInvalidValue 2013-09-08T00:36:40}
更新2:一些玩弄我發現我的時區後,它失敗(我不明白爲什麼的原因,但它只我的時區下失敗)
下面的代碼失敗:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:locale];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"America/Santiago"]];
NSDate *date = nil;
NSError *error = nil;
[formatter getObjectValue:&date
forString:@"2013-09-08T00:36:40"
range:NULL
error:&error];
NSLog(@"Date from String: %@", date);
NSLog(@"Error: %@", error);
任何建議,以解決它?
我無法重現您的問題,但我通過在更新後關閉投票而收回。 –
那麼,在第二種情況下記錄什麼? –
我也無法重現您的問題。我想你應該考慮@MartinR鏈接。 – Pawan