GMT-Zeitzone Umwandlung in objective c
Ich versuche zu konvertieren, nsstring, nsdate und dann auf die systemtimezone. Ist mein code richtig? Jede Hilfe zu schätzen.
NSString *str=@"2012-01-15 06:27:42";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *dateFromString = [dateFormatter dateFromString:str];
NSDate* sourceDate = dateFromString;
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT-07:00"];
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
NSDate* destinationDate = [[[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate] autorelease];
bottomLabel2.text=[NSString stringWithFormat:@"- %@ -",destinationDate];
Den code Ergebnis ist 2012-01-15 06:27:42 +0000 das ist das gleiche wie die Quelle!
"Ist mein code richtig?" ist die Frage nicht zu Fragen, hier. codereview.stackexchange.com
Ich glaube nicht, dass der original-poster ist zu Fragen, für ein review, aber vielleicht nicht deutlich gesagt das problem. Jedenfalls habe ich beantwortet.
Ich glaube nicht, dass der original-poster ist zu Fragen, für ein review, aber vielleicht nicht deutlich gesagt das problem. Jedenfalls habe ich beantwortet.
InformationsquelleAutor stefanosn | 2012-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke ich sehen kann was das problem hier ist - es ist diese Zeile:
GMT-07:00
ist keine gültige Abkürzung für diese Methode. Wenn Sie anrufen[NSTimeZone abbreviationDictionary]
erhalten Sie ein Wörterbuch mit allen verfügbaren Abkürzungen. Sie verwenden müssen die tatsächliche Abkürzung (z.B. 'PST' für Pacific Standard Time), und nicht auf das format "GMT-07:00".Zeit zu sparen, hier ist die volle Liste der unterstützten Abkürzungen mit
NSTimeZone
.Eine weitere Sache, um korrekt zu arbeiten, die Sie tun müssen, bottomLabel2.text=[NSString stringWithFormat:@"- %@ -",[dateFormatter stringFromDate:destinationDate]];
InformationsquelleAutor lxt
Der obigen Liste der “unterstützten" Abkürzungen ist auch eine abgekürzte Liste..
wenn Sie möchten, um zu sehen, eine ziemlich komplette Liste, hier ist etwas code zu generieren:
(und einen kleinen Teil der Ausgabe unten zu zeigen, einige, die nicht in der obigen Liste)
leider wird das OS nicht mit diesen zusätzlichen Zonen) Sie haben zu tun, die eine Umstellung auf -0600 Arten
InformationsquelleAutor hokkuk