2016-11-07 4 views
1

NSDateは「特定のカレンダーシステムまたはタイムゾーンとは独立した単一の時点」を表しているので、timeIntervalSince1970のようなメソッドで秒を指定して直接計算することはできますか?NSDate timeIntervalSince1970によって生成された秒で操作することはできますか?

I追加二つNSTimeInterval(別名double)値の減算ではなく- (nullable NSDate *)dateByAddingComponents:(NSDateComponents *)comps toDate:(NSDate *)date options:(NSCalendarOptions)optsdateByAddingTimeInterval:又はNSCalendar方法を使用してのような操作を意味します。

このような直接的な計算にはどのような問題がありますか?

+1

例えばNSDateComponentsを使用するほうが良いかもしれません。たとえば、今日の2PMなら2PMで明日は保存されないので24時間、23時間または25時間です。 – Larme

+1

あなたの心に留めている具体例はありませんが、いつも 'dateByAddingComponents'を使うのが最善です。しかし、秒を使って直接作業するのもOKです。しかし、あなたが本当にやりたいことを知らずに、 'dateByAddingComponents'を使うのが唯一の安全な勧告です。 – rmaddy

答えて

1

加算はあまり意味がないかもしれませんが、2つの日付間の時間差を求めたい場合は減算が意味を持ちます。

は何に注意したい、しかし、あなただけの減算

から秒、分、時間、日、週差のために行く必要があります。しかし、あなたが望むだろう月と年の違いを見つけるために、ということですNSDate APIを使用します。月と年は一定ではありません。

同様に、日付を追加する場合は秒、分、時、日、週を追加します。それらは一定で追加が容易です。しかし、月と年はあなたを上げるでしょう

+0

1年に1回、23または25時間あります。毎度、そしてうるう秒があります。分、時間、日、週は一定ではありません。 – Willeke

+0

あなたはNSDateを 'now'に、そして24時間後に、次に2つを引いた場合、うるう秒snuckなら24 * 60 * 60 * 1000以上の数値で終わる可能性がありますか?に?私は彼らがどのように一定ではないか分からないのですか? –

+0

私はうるう秒についてはわかりませんが、私は23時間と25時間については確信しています。 – Willeke

関連する問題