iOS 7: Konvertieren von NSDate string mit eigene Zeitzone und wieder neue NSDate
Möchte ich ändern aktuelle system-Zeit (set a custom NSTimeZone
) und wieder eine neue NSDate
Objekt.
Der code, den ich gemacht habe
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
NSLog(@"System time: %@", [dateFormatter stringFromDate:[NSDate date]]);
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Aqtobe"]];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"Aqtobe time: %@", dateString);
Die Ausgabe
System time: 2014-02-05 10:00:46 +0000
Aqtobe time: 2014-02-05 15:00:46 +0500
Aber wenn ich versuche, neue NSDate-Objekt von Aqtobe Zeit:
NSLog(@"New NSDate: %@", [dateFormatter dateFromString:dateString]);
Bekomme ich
New NSDate: 2014-02-05 10:02:40 +0000
Wo ich falsch war? Vielen Dank im Voraus
NSDate
immer wieder GMT. Können Sie es formatieren, um unabhängig von der Zeitzone, die Sie wollen, wenn Sie es gedruckt haben (wie du hast). Weitere Informationen finden Sie hierIch nicht ganz verstehen. Sie möchten überprüfen, ob ein Datum zwischen zwei Daten?
ja
Ich Schreibe es als Antwort aufgrund von Platzmangel.
Sie sind nicht die Bereitstellung der Zeitzone.. Standard-Zeitzone ist GMT. So ist es-vorausgesetzt, dass das gleiche Datum
InformationsquelleAutor Artem Z. | 2014-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
NSDate immer wieder ein Datum in GMT +0:00.
Also, es (NSDate-Objekt) haben immer den richtigen Wert umgewandelt, sondern in GMT +0:00.
So für mit es die als text immer mit dem gleichen Datum formatter mit gleichen zone.
Wenn Sie wollen, nutzen das Datum als string aus dem Datum, an anderen Orten (out-of-dateformatter-Objekt-Rahmen), ist es besser, die spezielle Methode für die Konvertierung.
Ist es klar unten mit Beispiel:
Ausführliche Erklärung, können Sie sich diese Frage: Tut [NSDate date] Rückkehr der lokalen Datum und Zeit?
InformationsquelleAutor Nitesh Borad
NSDate
hat viele Methoden für den Vergleich von Datum wieisEqualToDate:
(für eine ausführliche Methoden-und Gebrauchsspuren können Sie sehen, dieses ALSO Frage).Diese Methode, die ich nahm aus hier, wird Sie entscheiden lassen, ob
date
ist zwischenfirstDate
undlastDate
.Ich hoffe das ist was du gemeint hast. Wenn nicht bitte genau erklären, was Sie zu tun versuchen.
"start_time":"2000-01-01T15:00:00Z","end_time":"2000-01-01T16:00:00Z"
) und ich haben zu prüfen, ob meine system-Zeit (Es muss mit Aqtobe Zeitzone!) ist zwischen diesen 2 Terminen.Ich habe versucht, zu verwenden
[dateFormatter dateFromString]
. Aber es dauert mein system-Datum ohne Zeitzone Korrektur, die ich bereits erklärt habe in meiner Frage.InformationsquelleAutor Gad
Können Sie
NSDateComponents
undNSCalendar
erstellen Sie ein neues Datum. Aus der Datum und Uhrzeit Programming GuideTrotzdem, Bedenken Sie, dass ein Datum ist ein einzigartiger Punkt in der Zeit. Was Sie anzeigen, um den Benutzer unterscheidet basierend auf Ihrem Gebietsschema und die Zeitzone.
InformationsquelleAutor Gianluca Tranchedone