Erstellen NSDate mit einer bestimmten Zeit
Ich habe Folgendes problem. Ich muss ein NSDate-Objekt aus einer bestimmten Zeit. Die Zeit ist 6 Uhr heute in einer bestimmten Zeitzone (manchmal CST, EST usw.). Nicht 6 Uhr für jeden Tag, aber 6pm für heute in einer bestimmten Zeitzone.
Hatte ich die Idee mit dem NSCalendar-Objekt zu erstellen, das bestimmte Datum/Uhrzeit-aber das problem ist, dass es braucht einen Tag, Monat und Jahr. Also wie kann ich diese Werte einstellen, wenn ich nicht den richtigen Termin für Sie. Beispiel :
Heute ist der 28. Januar 2014, 11:09 CST. Wenn ich jetzt über die Notwendigkeit der Schaffung eines NSCalendar Objekt, ich müsste die Tag, Monat und Jahr. Ich kann die NSDate-Objekt die Tages -, Monats-und Jahres-Berechnungen, da es zu Problemen führen mit edge-Fällen.
Kann jemand mich in die richtige Richtung?
- NSDateComponents.
- NSDateFormatter zu konvertieren NSString zu NSDate... NSDateComponents könnte eine andere Lösung.
- Wenn Sie möchten, 6PM "heute", verwenden Sie NSDateFormatter auf format " nur Datum in der lokalen Zeitzone, fügen Sie "18:00:00", und ein anderes zu verwenden NSDateFormatter zu Lesen das Datum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Sorge scheint zu sein, über die edge-Fälle, dies lässt mich vermuten, dass eher als "6pm heute" Sie sind eigentlich auf der Suche nach dem "nächsten 6pm", d.h. wenn die Zeit ist vorbei, 6pm Sie wollen 6 Uhr morgen?
Vielleicht auch die folgenden helfen, ob meine Vermutung richtig ist oder nicht:
NSDate
NSCalendar
NSDateComponents
- nur extrahieren der Komponenten für Jahr, Monat, Tag, Stunde & Zeitzone. Sie haben nun die aktuelle Uhrzeit Komponenten in den Ziel-Zeitzone abgerundet auf die nächste Stunde.NSDate
aus extrahierten Komponenten mit Ihren Kalender. Sie haben nun Ihren abgerundeten Zeit alsNSDate
.NSTimeInterval
Wert, hinzufügen, dass Intervall zu Ihr nach unten abgerundet Datum.NSDate
kümmern sich um die Grenzfälle der Förderung das Datum, ändern Sie den Monat, etc. als benötigt werden.HTH
Ausprobieren NSDateComponents.
Ich bin mir nicht sicher, was die verschiedenen NSCalendar-id-Konfiguration-Optionen die initWithCalendarIndetifier nehmen, aber wenn diese Antwort ist hilfreich, vielleicht kann jemand hinzufügen Bearbeiten, mit einigen zusätzlichen Infos.
Swift
Objective C
Können Sie erstellen, die das Datum von Zeit wie dieser:
Initialisieren Sie ein NSDate-Objekt mit einer bestimmten Zeit