2017-09-28 3 views
0

andernfalls NSString in NSDateNSString (+ Zeitzone) zu NSDate

Ergebnis konvertieren: date = null;

(* HINWEIS: Datum von In-App-Kaufbeleg Empfang)

NSString * date_string = @"2017-09-24 11:20:21 Etc/GMT"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate *date = [dateFormatter dateFromString:date_string]; 
NSLog(@"date %@",date); 
+0

„(Zeichenfolge enthält Zeitzone)“ - noch Ihr Format enthält nichts für die Zeitzone, haben Sie die Dokumentation für die Datums- und Zeitformate für Zeitzone Artikel nachgeschlagen? Gibt es wirklich "Etc /" in deiner Zeichenfolge? Es scheint nur überraschend. – CRD

+0

@CRD 'Etc/GMT' ist eine gültige Zeitzone. – vadian

+0

@vadian - danke, habe gerade etwas gelernt. – CRD

Antwort

1

die Sie interessieren ..

NSString * date_string = @"2017-09-24 11:20:21 Etc/GMT"; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss VV"]; 
    NSDate *date = [dateFormatter dateFromString:date_string]; 
    NSLog(@"date %@",date); 
+0

Ja, Sie haben recht, es funktioniert √ vielen Dank –

1

Das Problem ist, dass Sie nicht das Datum Formatter erzählt haben, wie man beschäftigen Sie sich mit der lustigen Abfolge von Zeichen am Ende des Datums, dh Etc/GMT. Sie formatieren müssen ein time zone specifier am Ende davon. VV könnte der Trick heißt

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss VV"];