1

2 つの NSDates 間の時間差を取得しようとしています。

NSDate *d1 = somedate;
NSDate *d2 = someOtherdate;
NSTimeInterval sec = [d2 timeIntervalSinceDate:d1];

NSTimeInterval はどのくらい正確ですか? たとえば、日数が 28、29、30、または 31 の場合、月の日数の変動は考慮されますか? また時差?

4

4 に答える 4

3

どれくらい正確かNSTimeInterval

私が知っているNSTimeIntervalプラ​​ットフォームでは、Cocoa があり、型定義されていますdouble

月の日数の変動は考慮されていますか?

それはそうNSTimeIntervalではありません、それはタイプです。NSDateこれらすべての逸脱を処理するのは、さまざまなクラス (など) です。そして、彼らはそれを本当にうまくやっています。

于 2013-03-29T04:53:07.883 に答える
3

NSTimeInterval実際には typedefeddoubleです。NSDateは単一の時点 (タイム ゾーン、カレンダーなどに依存しない) を表すためNSTimeInterval、2 つの日付 (時点) の間の秒数を表します。

于 2013-03-29T04:48:56.837 に答える
2

NSTimeIntervalは実際には単なる typedef ですdouble

NSDate時間間隔をカプセル化し、それと対話するためのインターフェイスを提供します。

その日付を実際のカレンダーに関連付けたい場合は、 クラスNSCalendarNSDateComponentsクラスを使用する必要があります。

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];

次に、コンポーネント オブジェクトからデータを取得できます。

components.day
components.week
// etc

マヤ文化が決して絶滅しなかったと仮定します。この適切な瞬間は、同じ NSDate オブジェクトによって表されますが、別のNSCalendar( のようなNSMayanCalendar) を通じて、その日付の完全に異なる表現が得られます。

于 2013-03-29T04:56:51.570 に答える
1

NSTimeInterval はどのくらい正確ですか?

ミリ秒単位の精度です (それ以上ではないにしても)。

たとえば、日数が 28、29、30、または 31 の場合、月の日数の変動は考慮されますか?

はい、違いは秒単位です。NSDateうるう年や夏時間などと同様に、月の実際の日数を扱います。

また時差?

NSDate値は常に UTC で保存されるため、NSDateオブジェクトは常に同じタイムゾーンにあります。これについては対処する必要はありません。

于 2013-03-29T05:17:37.563 に答える