2014-10-07 18 views
7

Widziałem inną odpowiedź i pytanie, ale nie znalazłem dla mnie żadnej przydatnej odpowiedzi. Mam ciąg znaków takich jak 2014-10-07T07:29:55.850Z i chcę mieć datę, aby porównać siebie. Jeśli używam tego kodu:Konwertuj String do tej pory Objective-C

NSString *fullDate = payload[@"sent_ts"]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
dateFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.SSSZ"]; 
NSDate *date = [dateFormat dateFromString:fullDate]; 

Moja data jest zerowa. Czemu?

+0

Po kropce pojawia się kropka ... a nie dwukropek. Przyjrzyj się uważniej ciągowi formatu przed opublikowaniem pytania>< – borrrden

+0

Widziałem to, ale niestety nie jest to błąd. – fustalol

+1

Umieszczaj pojedyncze cytaty wokół T – borrrden

Odpowiedz

15

Spróbuj tego.

NSString *dateString = @"2014-10-07T07:29:55.850Z"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 
    NSDate *date = [dateFormatter dateFromString:dateString]; 
+0

Działa z pojedynczymi cudzysłowami na T, a nie na Z. Dlaczego? – fustalol

+0

@fustalol - Z jest poprawnym formaterem czasu: http://www.deanoj.co.uk/ios-development/nsdateformatter-formatting-strings-reference/ – foldinglettuce

+0

Działa. Dzięki. –

Powiązane problemy