Frage

ich eine NSDate und eine Dauer. Ich brauche die Zeit nach der Dauer erhalten

Gegeben:
  Das Datum ist „2010-02-24 00.30.00 -1000“
  Dauer beträgt 3600 Sekunden

Ich brauche zu bekommen "2010-02-24 13.30.00 -1000"

Ich dachte dateWithTimeIntervalSinceReferenceDate:, würde es tun, aber ich sehe jetzt, dass dies ein Datum von 1. Januar 2001 GMT Offset gibt.

Gibt es eine andere C-Funktion ich verwenden müssen

War es hilfreich?

Lösung

Wie DyingCactus Staaten, können Sie die addTimeInterval Methode von NSDate verwenden können, aber in Abhängigkeit von der Betriebssystem-Version wird eine Compiler-Warnung erstellen, da es sich in 10,6 ab 2009-08-17 veraltet.

Die derzeit empfohlene Methode ist dateByAddingTimeInterval auf NSDate zu verwenden:

NSDate *newDate = [oldDate dateByAddingTimeInterval:3600];

Beachten Sie, dass, wenn Sie 10.5 oder früher Targeting wird die ursprüngliche Antwort arbeiten.

Andere Tipps

Sie möchten die Klassenmethode dateWithTimeInterval:sinceDate:, die den Beginn und das Intervall dauert NSDate docs

Sie können die addTimeInterval Instanzmethode NSDate verwenden:

NSDate *newDate = [oldDate addTimeInterval:3600];

Edit: Wie Chip Coons zu Recht ausführt, ist diese Methode ist veraltet. Bitte nutzen Sie eine der anderen Methoden statt.

Für die Suche nach einer Swift 3.x-Version:

let newDate = Date.init(timeInterval: 2600, since: oldDate)

Statt der veralteten addTimeInterval Methode verwenden, können Sie die neuere dateByAddingTimeInterval Instanzmethode NSDate verwenden.

NSDate *newDate = [oldDate dateByAddingTimeInterval:2500];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top