2016-08-27 6 views
0

Ich bekomme UTC Zeit Zeichenfolge vom Server als "8/27/2016 6:56:23"Konnte die UTC-Zeit nicht in lokale Zeit umgerechnet werden?

Ich muss dieses Datum in meine lokale Zeitzone konvertieren.

NSString *dateFormat = @"dd/MM/yyyy HH:mm:ss a"; 
NSTimeZone *inputTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; 
NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init]; 
[inputDateFormatter setTimeZone:inputTimeZone]; 
[inputDateFormatter setDateFormat:dateFormat]; 

**NSDate *date = [inputDateFormatter dateFromString:_strLiveStreamStartTime];** 

NSTimeZone *outputTimeZone = [NSTimeZone localTimeZone]; 
NSDateFormatter *outputDateFormatter = [[NSDateFormatter alloc] init]; 
[outputDateFormatter setTimeZone:outputTimeZone]; 
[outputDateFormatter setDateFormat:dateFormat]; 
NSString *outputString = [outputDateFormatter stringFromDate:date]; 

NSLog(@"%@",outputString); 

Das Problem ist, wenn ich Server String in Datum verdeckt gibt es mir Nullwert. Bitte helfen Sie mir, das zu lösen. Ich google es und implementiere eine Lösung, aber nicht zu bekommen.

Antwort

1

Ihre Zeichenfolge ist month/day..., Ihr Datumsformat ist day/month..., das ist das Problem. Und die Stunde soll durch Kleinbuchstaben hh für 12-Stunden-Modus dargestellt werden.

NSString *dateFormat = @"MM/dd/yyyy hh:mm:ss a"; 
+0

Eigentlich Problem ist auch mit Stundenformat. in HH: mm: ss es funktioniert nicht und in 12 Stunden formate seine Arbeit. Irgendein bestimmter Grund dahinter. –

+0

Nein, das eigentliche Problem ist die umgekehrte Tag/Monat-Reihenfolge. 'HH' arbeitet im 12-Stunden-Modus, aber' hh' nicht im 24-Stunden-Modus, wenn Stunde> 12. Es ist nur eine gute Programmiergewohnheit, die angegebenen Spezifizierer zu verwenden. – vadian

Verwandte Themen