NSDate - Versetzen der Zeitzone

7

Ich muss etwas Kleines vermissen, aber ich kann es nicht herausfinden. Ich versuche, ein Datum für den Vergleich zu erstellen, aber ich kann nicht scheinen, currentDate von GMT zu EST zu versetzen:

%Vor%

Danke!

Bearbeiten:

Ich rufe eine Methode in einer separaten Klasse auf (indem ich versuche, diese portierbar zu machen) mit der folgenden Zeile:

%Vor%

in der Methode expires, habe ich diese Zeilen:

%Vor%

Ich vergleiche dann diese zwei Werte wie folgt:

%Vor%

Hilft das? Vielen Dank für Ihre Geduld!

Bearbeiten:

Hier ist das ganze verfällt: innerhalb der Methode wie es derzeit steht ...

%Vor%

Ich rufe es dann von einer anderen Klasse mit

%Vor%

Beim Ausführen im Simulator (neue App-Installation) zeigte NSLog dies an ...

%Vor%     
Eric 05.01.2011, 18:39
quelle

4 Antworten

5

Ein Objekt NSDate stellt unabhängig von Zeitzonen- und Kalenderüberlegungen einen Zeitpunkt dar. Zeitzoneninformationen sind relevant, wenn Sie ein Datum drucken oder analysieren, aber nicht innerhalb der NSDate .

gespeichert werden

Angenommen, Sie erstellen Ihr Ablaufdatum wie folgt:

%Vor%

Das besagt, dass der Ablauf um 12.00 Uhr GMT am 7. Januar erfolgen soll. Wenn Sie möchten, dass er am Mittag EST abläuft, erstellen Sie stattdessen mit -0500. Was Sie nicht tun sollten, ist, sich mit der aktuellen Zeit zu beschäftigen, wenn Sie einen Vergleich durchführen.

Ein einfacher Weg, um zu sehen, ob die Zeit abgelaufen ist, ist dann

%Vor%

und Sie können sehen, ob within Sekunden seit dem Installationsdatum wie folgt vergangen sind:

%Vor%     
Nick Moore 05.01.2011, 19:07
quelle
17

Keine dieser Antworten hat mir ein NSDate -Objekt mit dem aktuellen, lokalen Datum gegeben. Also hier ist, wie ich es gemacht habe:

%Vor%     
samvermette 28.06.2011 03:28
quelle
0

In Cocoa ist NSDate eine abstrakte Darstellung eines Datums ohne angewandte Zeitzoneninformationen. Beachten Sie, dass currentDateWithOffset ist das gleiche Datum wie die Datumszeichenfolge, nur in einer anderen Zeitzone (fünf Stunden voraus). Dies ist ein erwartetes Verhalten, da NSDate nicht die Zeitzone enthält, die zum Erstellen verwendet wurde.

    
mipadi 05.01.2011 19:09
quelle
0

Ich habe ein bisschen mehr herumgebastelt und einen Weg gefunden, den Versatz zu "betrügen", um meinen Bedürfnissen zu entsprechen. Aus anderen Lektüren gehe ich davon aus, dass NSCalendar eine bessere Langzeitlösung sein könnte, aber für den Moment habe ich mich geändert

%Vor%

bis

%Vor%

Das hat mir die Ergebnisse gebracht, die ich brauchte, und funktioniert in den späteren Vergleichen, die ich verwende. Danke für die Hintergrundinformationen alle!

    
Eric 05.01.2011 19:31
quelle

Tags und Links