NSDate dateFromString, wie man UTC, GMT und Benutzergebietsschema 'um' analysiert?

Ich analysiere einige Werte aus einer XML-Datei. Da ist ein@"25-12-2010'T'23:40:00"Zeichenkette mit Uhrzeit und Datum und es gibt eine Zeichenkette mit dem GMT-Offset wie diesem @ "+ 0200". Die oben genannte Zeit ist also der 25. Dezember, 23:40:00 in der Zeitzone +0200 GMT. (oder 21:40 UTC) Ich habe viele dieser Daten mit unterschiedlichen GMT-Offsets. Ich muss diese Daten so anzeigen, wie sie sind, d. H. Sie dürfen nicht geändert werden, um dem Gebietsschema des Benutzers zu entsprechen. Wenn also Zeit 1: 22:45 +0500 ist, muss ich dem Benutzer dies anzeigen, auch wenn sich der Benutzer in einer anderen Zeitzone befindet.

Ich habe alle möglichen Probleme beim Anzeigen, Berechnen und Parsen dieser Zeichenfolgen.

Wenn ich ein DateFormatter verwende unddateFromString Die benutzerspezifischen GMT-Informationen werden in das Ergebnis einbezogenNSDate Dies bedeutet, dass die oben genannten Werte als 23:40:00 +0100 GMT gespeichert werden, da dies die Einstellung meines Telefons und möglicherweise 23:40:00 −0400 für einen Benutzer des New Yorker Telefons ist.

Wenn ich anschließend Subtraktionen, Additionen und Vergleiche zwischen diesen Daten vornehme, muss ich den GMT-Versatz beibehalten, und alles wird schlimmer, wenn das Telefon die Ländereinstellungen wechselt, von der Analyse des Datums bis zur Anzeige des Datums ...

Gibt es eine Möglichkeit für mich, dieses Datum aus der Zeichenfolge als UTC zu extrahieren und es dann als Intervall anstelle eines tatsächlichen (zeitzonenabhängigen) Datums zu speichern. Ich weiß, dass Daten so immer intern gespeichert werden. Aber ich kann nicht herausfinden, wie es mit dem separaten GMT-String und unter Berücksichtigung des Gebietsschemas des Benutzers gemacht wird.

Prost

Antworten auf die Frage(2)

Ihre Antwort auf die Frage