2012-12-25 60 views
0

我想這個字符串的NSDateiPhone:如何轉換的NSString的NSDate

「2012-12-25T18:58:57.649Z」

我知道如何轉換的NSString的NSDate但我無法找到適當的格式。我設置了以下格式,但不起作用。請建議

[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    //[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault]; 
    [dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss"]; 
+0

你忘了添加毫秒單位7 –

+0

我用這一個[dateFormatter setDateFormat:@ 「YYYY-MM-DDTHH:MM:ss.msZ」];和這一個[dateFormatter setDateFormat:@「yyyy-MM-ddTHH:mm:ss.ms」]; 。這兩種格式不起作用 – Rupesh

+0

[NSString到NSDate]的可能重複(http://stackoverflow.com/questions/1353081/nsstring-to-nsdate) – Barmar

回答

1

希望這有助於

- (NSDate *)dateFromISO8601:(NSString *)str{ 
    if(![str isKindOfClass:NSString.class]){ 
     return nil; 
    } 

    static NSDateFormatter* sISO8601 = nil; 

    if (!sISO8601) { 
     sISO8601 = [[NSDateFormatter alloc] init]; 
     [sISO8601 setTimeStyle:NSDateFormatterFullStyle]; 
     [sISO8601 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.S"]; 
     [sISO8601 setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
    } 
    if ([str hasSuffix:@"Z"]) { 
     str = [str substringToIndex:(str.length-1)]; 
    } 

    NSDate *d = [sISO8601 dateFromString:str]; 
    return d; 
}