2 つの NSDates 間の時間差を取得しようとしています。
NSDate *d1 = somedate;
NSDate *d2 = someOtherdate;
NSTimeInterval sec = [d2 timeIntervalSinceDate:d1];
NSTimeInterval はどのくらい正確ですか? たとえば、日数が 28、29、30、または 31 の場合、月の日数の変動は考慮されますか? また時差?
2 つの NSDates 間の時間差を取得しようとしています。
NSDate *d1 = somedate;
NSDate *d2 = someOtherdate;
NSTimeInterval sec = [d2 timeIntervalSinceDate:d1];
NSTimeInterval はどのくらい正確ですか? たとえば、日数が 28、29、30、または 31 の場合、月の日数の変動は考慮されますか? また時差?
どれくらい正確か
NSTimeInterval
私が知っているNSTimeInterval
プラットフォームでは、Cocoa があり、型定義されていますdouble
。
月の日数の変動は考慮されていますか?
それはそうNSTimeInterval
ではありません、それはタイプです。NSDate
これらすべての逸脱を処理するのは、さまざまなクラス (など) です。そして、彼らはそれを本当にうまくやっています。
NSTimeInterval
実際には typedefeddouble
です。NSDate
は単一の時点 (タイム ゾーン、カレンダーなどに依存しない) を表すためNSTimeInterval
、2 つの日付 (時点) の間の秒数を表します。
NSTimeInterval
は実際には単なる typedef ですdouble
。
NSDate
時間間隔をカプセル化し、それと対話するためのインターフェイスを提供します。
その日付を実際のカレンダーに関連付けたい場合は、 クラスNSCalendar
とNSDateComponents
クラスを使用する必要があります。
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
次に、コンポーネント オブジェクトからデータを取得できます。
components.day
components.week
// etc
マヤ文化が決して絶滅しなかったと仮定します。この適切な瞬間は、同じ NSDate オブジェクトによって表されますが、別のNSCalendar
( のようなNSMayanCalendar
) を通じて、その日付の完全に異なる表現が得られます。
NSTimeInterval はどのくらい正確ですか?
ミリ秒単位の精度です (それ以上ではないにしても)。
たとえば、日数が 28、29、30、または 31 の場合、月の日数の変動は考慮されますか?
はい、違いは秒単位です。NSDate
うるう年や夏時間などと同様に、月の実際の日数を扱います。
また時差?
NSDate
値は常に UTC で保存されるため、NSDate
オブジェクトは常に同じタイムゾーンにあります。これについては対処する必要はありません。