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オブジェクトは常に同じタイムゾーンにあります。これについては対処する必要はありません。