6

NSDate期間があります。期間の後に時間を取得する必要があります

与えられ
た:日付は「2010-02-2412:30:00-1000」
です持続時間は3600秒です

「2010-02-2413:30:00-1000」を取得する必要があります

dateWithTimeIntervalSinceReferenceDate:は、トリックを実行すると思いましたが、これにより、2001年1月1日GMTからの日付オフセットが得られることがわかりました。

使用する必要のある別のC関数はありますか

4

5 に答える 5

32

DyingCactusが述べているように、NSDateのaddTimeIntervalメソッドを使用できますが、2009年8月17日現在10.6で非推奨になっているため、OSのバージョンによってはコンパイラ警告が作成されます。

現在推奨されている方法は、NSDateでdateByAddingTimeIntervalを使用することです。

NSDate *newDate = [oldDate dateByAddingTimeInterval:3600];

10.5以前をターゲットにしている場合は、元の回答が機能することに注意してください。

于 2010-02-24T21:19:05.713 に答える
4

dateWithTimeInterval:sinceDate:開始日と間隔をとるクラスメソッドが必要ですNSDatedocs

于 2010-02-24T20:41:13.857 に答える
3

NSDateのaddTimeIntervalインスタンスメソッドを使用できます。

NSDate *newDate = [oldDate addTimeInterval:3600];

編集:Chip Coonsが正しく指摘しているように、このメソッドは非推奨になりました。代わりに、他の方法のいずれかを使用してください。

于 2010-02-24T21:02:56.280 に答える
1

Swift 3.xバージョンをお探しの方へ:

let newDate = Date.init(timeInterval: 2600, since: oldDate)
于 2016-11-23T18:01:47.370 に答える
0

非推奨のaddTimeIntervalメソッドを使用する代わりに、NSDateの新しいdateByAddingTimeIntervalインスタンスメソッドを使用できます。

NSDate *newDate = [oldDate dateByAddingTimeInterval:2500];
于 2014-07-15T21:33:14.080 に答える