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% 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
.
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:
Keine dieser Antworten hat mir ein NSDate
-Objekt mit dem aktuellen, lokalen Datum gegeben. Also hier ist, wie ich es gemacht habe:
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.
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!
Tags und Links objective-c nsdate