2011-07-25 70 views
0

我要分析此日期: 「2009-08-24T05:20:00」NSDateFormatter的問題

我已經試過這一點,但不工作:

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 

[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss"]; 

什麼想法?

+1

您應該看到['this'](http://stackoverflow.com/questions/6502284/how- to-convert-a-date-string-like-2011-06-25t1100260100-to-a-long-like-ipho/6502301#6502301) –

+0

確保手機不在24小時地區,但設置爲12小時顯示。 –

回答

2

我創建了這個類別:

的NSString + DateParse.h

@interface NSString (DateParse) 

-(NSDate *) dateFromISO8601; 

@end 

NSString + D ateParse.m

@implementation NSString (DateParse) 

-(NSDate *) dateFromISO8601 { 

    NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; 
    NSString *format = ([self hasSuffix:@"Z"]) ? @"yyyy-MM-dd'T'HH:mm:ss'Z'" : @"yyyy-MM-dd'T'HH:mm:ssz"; 
    [formatter setFormatterBehavior:NSDateFormatterBehavior10_4]; 
    [formatter setDateFormat:format]; 
    [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 
    return [formatter dateFromString:self]; 

} 

@end 

因此,假設你有一個名爲strDate字符串:

NSDate * dtParsed = [strDate dateFromISO8601]; 
+0

是的,這工作(雖然有點太多,我的小問題)。謝謝。但是,我現在必須選擇正確的答案,並且似乎有多個正確的答案:) –

2
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 

你必須使用單引號圍繞T.

+0

是的,這有效。謝謝。不過,我現在必須選擇正確的答案,似乎有不止一個正確的答案:) –

2
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"]; 

試試這個

+0

是的,這個工程。謝謝。然而,我現在必須選擇正確的答案,似乎有不止一個正確的答案:) –