NSDateクラスのリファレンス

Last-modified: 2014-01-13 (月) 12:43:18
 

スーパークラスNSObject
適合プロトコルNSCopying
NSSecureCoding
NSObject
フレームワーク/System/Library/Frameworks/Foudation.framework
サポートOS X v10.0, iOS 2.0以降
宣言NSCalendarDate.h
NSDate.h
関連するガイドDate and Time Programming Guide
Property List Programming Guide
関連するサンプルコードiSpend
iSpendPlugin
LinkedImageFetcher
PhotoSearch
With and Without Bindings
 

概略

NSDateオブジェクトは、特定の時を表現します。NSDateはクラスクラスターで実装されていて、1つの公開スーパークラスとなっています。このオブジェクトは、特定のまたは相対的な日時を表す値へのプログラム的なインターフェイスを宣言しています。NSDateを使って生成したオブジェクトは、日時のオブジェクトを表します。これらは不変なオブジェクトです。クラスクラスターの特徴がゆえに、NSDateクラスから返されるオブジェクトは、この抽象クラスのインスタンスではなくて、プライベートなサブクラスです。日時オブジェクトのクラスはプライベートなものですが、インターフェイスはパブリックで、抽象的なNSDateスーパークラスにおいて宣言されています。一般的に、date... クラスメソッドが呼び出されて、適切な日時オブジェクトがインスタンスとなります。

NSDateは、日時オブジェクトの生成、日時の比較、日時の表現、日時の差分計算などといった動作を提供する抽象クラスです。NSDateは、場面場面の要求に応じて適切な日時を生成して返すプログラム的なインターフェイスを備えています。NSDateから返される日時オブジェクトは軽量で不変であり、というのも、そのオブジェクトは時間という概念における不変な一点を指しているからです。このクラスは、任意の暦法表現に対応する基盤を備えるようも設計されています。

NSDateの唯一のプリミティブメソッドはtimeIntervalSinceReferenceDateで、これはNSDateのインターフェイスにおけるほかの全てのメソッドを実装する基となっています。このメソッドは、2001-01-01 00:00 GMTを絶対標準時間として、これと比較しての時間を返します。

日時を指定する文字列をパースしたり、その逆に文字列表現を作成したりするには、前者へはdateFromString:、後者へはstringFromDate:メソッドを用いてNSDateFormatterインスタンスから実行できます。より詳細については、Date Formattersをご覧ください。

NSDateは、西暦1582年以降ならユリウス暦からグレゴリ暦への変換と、NSCalendarと連携して暦法に関係する計算を可能にしています。しかし、グレゴリ暦に準拠していない日時について、いくつかのロケールでは注意がが必要です。例を挙げると、イングランドでは、西暦1752年9月までグレゴリ暦へと切り替えてませんでした。

NSDateは、Core Foundationでにおける対となるCFDateRefとで“toll-free bridged”です。より詳細については、"Toll-Free Bridging"をご覧ください。

サブクラス化する際のメモ

NSDateをサブクラス化する大きな理由は、特定の暦法を用いるシステムで作業するコンビニエンスメソッドを備えるクラスを生成することにあります。しかしほかの理由、たとえば、より一層精度が高い時間を提供する日時を取得する場面ではNSDateのカスタムクラスが必要になるかもしれません。

メソッドのオーバーライド

プライベートもしくはパブリックなサブクラスから提供されるものとは異なる振る舞いをするNSDateのサブクラスを必要とするときは、次のことをしなくてはなりません。

  • (絶対標準時間から相対的な)日時を保持する、適切なインスタンス変数を宣言する。
  • インスタンス変数を基にした正しい日時を保持するために、timeIntervalSinceReferenceDateインスタンスメソッドをオーバーライドする。
  • 指定イニシャライザメソッドの1つである、initWithTimeIntervalSinceReferenceDate:メソッドをオーバーライドする。

暦法を提供するサブクラスを生成するときは、その暦法の単位を過去と未来とで分割するメソッドもまた定義しなくてはなりません。

NSDateNSCopyingNSCodingプロトコルに準拠しているので、サブクラスにおいてもそれらプロトコルに準拠するすべてのメソッドを実装しなくてはなりません。

熟慮すべき事柄

NSDateが使っている絶対相対時間(2001-01-01 00:00 GMTから)とは異なる相対時間を使っても構いません。ですがそうしたとしても、メソッドtimeIntervalSinceReferenceDateとinitWithTimeIntervalSinceReferenceDate:の実装においては、絶対相対時間を使わなくてはなりません。というのも、それらメソッド名にもある相対時間とは、絶対相対時間を指します。それらメソッドで絶対相対時間を使わなかったとしたら、新たにサブクラス化したNSDateオブジェクトと、NSDateオブジェクトのすでに存在するプライベートなサブクラスとの比較は正常な動作をしないでしょう。

タスク

日時オブジェクトの生成と初期化

+ date
+ dateWithNaturalLanguageString:
+ dateWithNaturalLanguageString:locale:
+ dateWithString:
+ dateWithTimeIntervalSinceNow:
+ dateWithTimeInterval:sinceDate:
+ dateWithTimeIntervalSinceReferenceDate:
+ dateWithTimeIntervalSince1970:
- init
- initWithString:
- initWithTimeIntervalSinceNow:
- initWithTimeInterval:sinceDate:
- initWithTimeIntervalSinceReferenceDate:
- initWithTimeIntervalSince1970:

時間範囲の取得

+ distantFuture
+ distantPast

日時の比較

- isEqualToDate:
- earlierDate:
- laterDate:
- compare:

時間の差分を取得

- timeIntervalSinceDate:
- timeIntervalSinceNow
+ timeIntervalSinceReferenceDate
- timeIntervalSinceReferenceDate
- timeIntervalSince1970

時間の差分を加算

- dateByAddingTimeInterval:
- addTimeInterval: OS X v10.6で廃止

日時を文字列をして表現

- description
- descriptionWithCalendarFormat:timeZone:locale:
- descriptionWithLocale:

NSCalendarDateオブジェクトへ変換

- dateWithCalendarFormat:timeZone:

クラスメソッド

+ date

現在の日時がセットされた新しい日時を生成して返します。
+ (instancetype)date

Return Value
現在の日時がセットされた新しい日時オブジェクト。

Discussion
このメソッドは、クラスへのデフォルトの初期化メソッド、initを使います。

次のコード例は、現在の日時を取得するのにdateをどのように使うかを示します。

NSDate *today = [NSDate date];

Aalivability
OS X v 10.0以降
Related Sample Code
avexporter
BlastApp
DatePicker
VirtualScanner
With and Without Bindings
Declared In
NSDate.h

+ dateWithNaturalLanguageString:

引数の文字列で指定された日時がセットされたNSDateオブジェクトを生成し、返します。

+ (id)dateWithNaturalLanguageString:(NSString *)string

Parameters
string
日時を指すのに日常で使われる字句、たとえば“last Tuesday at dinner,”や“3pm December 31, 2001,”、“12/31/01,”、“31/12/01.”などを含む文字列。

Return Value
stringで指定された日時へセットされた新しいNSDateオブジェクト。

Discussion
このメソッドは、日時を表す字句の限られたセット、主として英語、しかサポートしません。サポートしない字句を用いると予測できない結果が得られるので、まったくお勧めできません。文字列から日時のオブジェクトを作るには、代わりに日時フォーマットオブジェクトを使うべきです(NSDateFormatterとData Formatting Guideを参照してください)。

文字列をパースする際に、このメソッドはユーザデフォルトデータベースに保存してある日時についてのプレファレンスを使います。

Availability
OS X v 10.4以降
Declared In
NSCalendarDate.h

+ dateWithNaturalLanguageString:locale:

引数の文字列で指定された日時がセットされたNSDateオブジェクトを生成し、返します。

+ (id)dateWithNaturalLanguageString:(NSString *)string locale:(id)localeDictionary

Parameters
string
日時を指すのに日常で使われる字句、たとえば“last Tuesday at dinner,”や“3pm December 31, 2001,”、“12/31/01,”、“31/12/01.”などを含む文字列。

localeDictionary
ロケールデータを内包するNSDictionaryオブジェクト。ユーザプレファレンスを使うには、NSUserDefaults standardUserDefaults] dictionaryRepresentation]が利用できます。

nilNSLocaleのインスタンスを渡せば、NSDateはシステムデフォルトのロケールを使います。これは現在のユーザが使っているロケールと同じものではありません。

Return Value
localeDictionaryに従ってパースされたstringが指定する日時へセットされた、新しいNSDateオブジェクト。

Discussion
このメソッドは、日時を表す字句の限られたセット、主として英語、しかサポートしません。サポートしない字句を用いると予測できない結果が得られるので、まったくお勧めできません。文字列から日時のオブジェクトを作るには、代わりに日時フォーマットオブジェクトを使うべきです(NSDateFormatterとData Formatting Guideを参照してください)。

localeDictionaryから得られるロケールデータを表すキーバリューは、文字列をパースするのに使用します。そのキーバリュークラスの中でリストされているロケールキーに加えて、以下のキーが自然言語の文字列をパースするのに使われます。

 

NSDateTimeOrdering
NSEarlierTimeDesignations
NSHourNameDesignations
NSLaterTimeDesignations
NSNextDayDesignations
NSNextNextDayDesignations
NSPriorDayDesignations
NSThisDayDesignations
NSYearMonthWeekDesignations

 

Availability
OS X v10.4以降
Declared In
NSCalendarDate.h

+ dateWithString:

引数の文字列を、国際的に通用する時間を指すフォーマット(YYYY-MM-DD HH:MM:SS ±HHMM)を用いて解釈し、そこから特定された日時をともなったNSDateオブジェクトを生成し、返します。

+ (id)dateWithString:(NSString *)aString

Parameters
aString
引数の文字列を、国際的に通用する時間を指す形式(YYYY-MM-DD HH:MM:SS ±HHMM))の日時を特定する文字列。ここで±HHMMは、GMT (たとえば“2001-03-24 10:45:32 +0600”)からの時刻と分数で表すタイムゾーンオフセットです。

プラスかマイナスの符号が付いたタイムゾーンオフセットも含む、さきのフォーマット文字列のすべてのフィールドを指定しなくてはなりません。

Return Value
aStringで指定された日時へセットしたNSDateオブジェクト。

Discussion
文字列から日時オブジェクトを作るのには、代わりに日時フォーマッターオブジェクトを一般的には使うべきです(NSDateFormatterとData Formatting Guideを参照してください)。

Availability
OS X v10.4以降
See Also
– initWithString:
Declared In
NSCalendarDate.h

+ dateWithTimeInterval:sinceDate:

特定の日時に対して、指定された日時からの秒数がセットしたNSDateオブジェクトを生成して返します。

+ (instancetype)dateWithTimeInterval:(NSTimeInterval)seconds sinceDate:(NSDate *)date

Parameters
seconds
引数の日時に加える秒数。過去を指定するには、負の数を使います。

date
日時。

Return Value
引数のdateからseconds'秒へセットされたNSDateオブジェクト。

Availability
OS X v10.6 以降
Declared In
NSDate.h

+ dateWithTimeIntervalSince1970:

1970-01-01 00:00 GTMから、引数で与えられた秒数を加えた日時へセットしたNSDateオブジェクトを、生成して返します。

+ (instancetype)dateWithTimeIntervalSince1970:(NSTimeInterval)seconds

Parameters
second
1970-01-01 00:00 GTMのリファレンス時間から、新しい日時までの秒数。過去を指定するには、負の数字を使います。

Return Value
リファレンス日時から'second秒数でセットされた、NSDateオブジェクト。

Discussion
このメソッドは、BSDシステム関数が返す t_values 値からのNSDateオブジェクトを生成するのに便利です。

Availability
OS X v10.0以降
See Also
– timeIntervalSince1970
Declared In
NSDate.h

+ dateWithTimeIntervalSinceNow:

現在の日時に引数の秒数を加えたNSDateオブジェクトを生成して返します。

+ (instancetype)dateWithTimeIntervalSinceNow:(NSTimeInterval)seconds

Parameters
seconds
現在の日時から求めたい日時までの秒数。現在の日時より過去を指定するには、負の数字を使います

Return Value
現在の日時からのseconds秒数へセットされたNSDateオブジェクト。

Availability
OS X v10.0以降
See Also
– initWithTimeIntervalSinceNow:
Related Sample Code
IdentitySample
LinkedImageFetcher
Quartz Composer MiniSOAP
Sketch
Sketch+Accessibility
Declared In
NSDate.h

+ dateWithTimeIntervalSinceReferenceDate:

2001-01-01 00:00 GTM から、引数で与えられた秒数を加えた日時としてセットされたNSDateオブジェクトを、生成して返します。

+ (instancetype)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)seconds

Parameters
seconds
2001-01-01 00:00 GTM の絶対リファレンス時間から、新しい日時までの秒数。過去を指定するには、負の数字を使います。

Return Value
絶対リファレンス日時からsecondがセットされた、NSDateオブジェクト。

Availability
OS X v10.0以降
See Also
– initWithTimeIntervalSinceReferenceDate:
Related Sample Code
PhotoSearch
Declared In
NSDate.h

+ distantFuture

はるか未来にある日時を表すNSDateオブジェクトを生成して返します。

+ (id)distantFuture

Return Value
はるか未来(数百年単位の先)の日時を表すNSDateオブジェクト。

Discussion
NSDateオブジェクトが、まったく無視されるデータ値を持つよう求められたときに、これを渡します。たとえば、イベントマスクで指定されたあるイベントが、指定された日時より前に起こらないとすると、NSWindowのメソッドnextEventMatchingMask:untilDate:inMode:dequeue:はnilを返します。そのイベントが間違いなく起きるのを待つデータの引数として、distantFutereから返されるオブジェクトを使うことができます。

myEvent = [myWindow nextEventMatchingMask:myEventMask
	untilDate:[NSDate distantFuture]
	inMode:NSDefaultRunLoopMode
	dequeue:YES];

Availability
OS X v10.0以降
See Also
+ distantPast
Related Sample Code
CIAnnotation
DNSSDObjects
LinkedImageFetcher
SimplePing
UDPEcho
Declared In
NSDate.h

+ distantPast

はるか過去にあった日時を表すNSDateオブジェクト生成して返します。

+ (id)distantPast

Return Value
はるか過去(数百年単位の前)の日時を表すNSDateオブジェクト。

Discussion
管理されている日時、言い換えれば保証されている日時の限界として、このオブジェクトを使うことができます。

Availability
OS X v10.0以降
See Also
+ distantFuture
Declared In
NSDate.h

+ timeIntervalSinceReferenceDate

2001-01-01 00:00 GTM と現在の日時との差を返します。

+ (NSTimeInterval)timeIntervalSinceReferenceDate

Return Value
システムの絶対標準時間(2001-01-01 00:00 GTM)と現在の日時の差。

Discussion
このメソッドはNSDateのプリミティブメソッドです。NSDateをサブクラス化するなら、その実装に合うようこのメソッドをオーバーライドしなくてはなりません。

Availability
OS X v10.0以降
See Also
– timeIntervalSinceReferenceDate
– timeIntervalSinceDate:
– timeIntervalSince1970
– timeIntervalSinceNow
Declared In
NSDate.h

インスタンスメソッド

- compare:

レシーバと与えられた日時との順序を、NSComparisonResult値として返します。

- (NSComparisonResult)compare:(NSDate *)anotherDate

Parameters
anotherDate
レシーバと比較する日時。
この値はnilであってはいけません。nilのときの挙動は定義されていませんが、将来のOS X では変わるかもしれません。

Return Value
つぎの通りです

  • receiver == 'anotherDate NSOrderSame
  • receiver > anotherDate NSOrderDescending
  • receiver< anotherDate NSOrderAscending

Discussion
このメソッドは、日時の秒以下の違いを検知します。より低い精度で比較をしたいなら、timeIntervalSinceDate:を使ってください。

Availability
OS X v10.0以降
See Also
– earlierDate:
isEqual: (NSObject protocol)
– laterDate:
Declared In
NSDate.h

- dateByAddingTimeInterval:

レシーバに対して、引数の秒数を加えた日時へセットした、新しいNSDateオブジェクトを返します。

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

Parameters
seconds
レシーバに加える秒数。レシーバよりも過去の日時を指定するオブジェクトを取得するには、負の数の秒数を使います。

Return Value
レシーバに対してseconds秒を加えた、新しいNSDateオブジェクト。返される日時は、レシーバとは異なった日時を表すものがよいでしょう。

Availability
OS X v10.6以降
See Also
– initWithTimeInterval:sinceDate:
– timeIntervalSinceDate:
Declared In
NSDate.h

- dateWithCalendarFormat:timeZone:

廃止(日時を構成する各値をセットするNSDateメソッドを使ってください。)

description

レシーバの文字列表現を返します。

- (NSString *)description

Return Value
レシーバの文字列表現

Discussion
この文字列表現は、デバックのためだけには役に立ちます。

内包している日時をフォーマットされた文字列でとして得るには、いくつかのオプションがあります。つぎの項目を参照してください。日時フォーマッタについてはNSDateFormatter, Data Formatting Guide,、NSDateのメソッドについてはdescriptionWithLocale:, dateWithCalendarFormat:timeZone:, descriptionWithCalendarFormat:timeZone:locale:。

Availability
OS X v10.0以降
See Also
– descriptionWithLocale:
– dateWithCalendarFormat:timeZone:
– descriptionWithCalendarFormat:timeZone:locale:
''Related Sample Code
SourceView
Declared In
NSDate.h

- descriptionWithCalendarFormat:timeZone:locale:

変換指定子に従ってフォーマットした、レシーバの文字列表現を返します。

- (NSString *)descriptionWithCalendarFormat:(NSString *)formatString timeZone:(NSTimeZone *)aTimeZone locale:(id)localeDictionary

Parameters
formatString
得られる文字列のフォーマット(フォーマットされた文字列をどうやって生成するかについてを説明しているDate and Number Formatters on OS X v10.0 to 10.3を参照してください)。デフォルトのフォーマット“%Y-%m-%d %H:%M:%S %z” (これは国際標準の YYYY-MM-DD HH:MM:SS ±HHMM に準拠しています)、を使うにはnilを渡します。

aTimeZone
レシーバを表している日時が属するタイムゾーン。デフォルトのタイムゾーン、つまり利用しているのロケールを使うにはnilを渡します。

localeDictionary
ロケールの情報を含むNSDictionaryオブジェクト。ユーザのプレファレンスを使うには、つぎの文が使えます。
[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]

nilNSLocaleのインスタンスを渡すと、NSDateは、システムのデフォルトロケールを使います。このロケールは、現在のユーザのロケールとは同じものではありません。

Return Value
引数の変換指定子を使ってフォーマットした、レシーバの文字列表現。

Discussion
このメソッドの実装については、互換性を理由にしたいくつかの解決できない問題があります。日時をフォーマットするには、代わりに日時フォーマットオブジェクトを使うべきです(NSDateFormatterとData Formatting Guideを参照してください。)。

次のようにして、現在の日時を出力するのにこのメソッドを使用すると良いでしょう。

sprintf(aString, "The current time is %s\n", [[[NSDate  date]
	descriptionWithCalendarFormat:@"%H:%M:%S %Z"
	timeZone:nil
	locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]]
	UTF8String]);

Availability
OS X v10.4以降
See Also
– descriptionWithLocale:
Declared In
NSCalendarDate.h

- descriptionWithLocale:

与えられるロケールを使って、レシーバの文字列表現を返します。

- (NSString *)descriptionWithLocale:(id)locale

Parameters
locale
NSLocaleオブジェクト

nilを渡せば、NSDateはdescriptionメソッドと同様にして日時をフォーマットします。OS X v10.4以前では、このパラメータはNSDictionaryオブジェクトでした。OS X v10.5 においてNSDictionaryを渡すと、NSDateはユーザのデフォルトロケールを使います。これは、[NSLocale currentLocale]を渡すのと同じです。

Return Value
レシーバの文字列表現。これは引数のロケールを使って、もしくはnilであってもいいのですが、国際的に通用しているCOLOR(#888888)YYYY-MM-DD HH:MM:SS ±HHMM}へフォーマットされています。±HHMMは、GMTからの時数と分数のオフセットを示します。(例:“2001-03-24 10:45:32 +0600”)

熟慮すべき事
OS X v10.4以前では、localDictionaryはロケール情報を保持するNSDictionaryオブジェクトでした。ユーザプレファレンスを使うには、[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]が使えます。

Availability
OS X v10.0以降
Declared In
NSDate.h

- earlierDate:

レシーバと引数の日時とを比較して、その早い方を返します。

- (NSDate *)earlierDate:(NSDate *)anotherDate

Parameters
anotherDate
レシーバと比較する日時。

Return Value
レシーバとanotherDateとで早い方。これはtimeIntervalSinceDate:を使用して決定します。レシーバとanotherDateが同じ日時を示すなら、レシーバを返します。

Availability
OS X v10.0以降
See Also
– compare:
isEqual: (NSObject protocol)]
– laterDate:
Declared In
NSDate.h

- init

現在の日時で初期化されたNSDateオブジェクトを返します。

- (instancetype)init

Return Value
現在の日時で初期化されたNSDateオブジェクト。

Discussion
このメソッドはNSDateの指定イニシャライザです。

Availability
OS X v10.0以降
See Also
+ date
– initWithTimeIntervalSinceReferenceDate:
Declared In
NSDate.h

- initWithString:

国際的に通用する日時フォーマットを使った引数の文字列が指定する、その日時で初期化されたNSDateオブジェクトを返します。

- (id)initWithString:(NSString *)description

Parameters
description
国際的に通用する日時フォーマット、YYYY-MM-DD HH:MM:SS ±HHMM形式の、日時を指定する文字列。

±HHMMは、GMTからの時間と分のタイムゾーンのオフセットです。(例:“2001-03-24 10:45:32 +0600”)
フォーマット文字列のすべてのフィールドを指定しなくてはなりません。これにはタイムゾーンのオフセットも含まれており、プラスかマイナスの符号から始めなくてはなりません。

Return Value
aStringで指定された日時で初期化されたNSDateオブジェクト。

Availability
OS X v10.4以降
See Also
+ dateWithString:
– description
Declared In
NSCalendarDate.h

- initWithTimeInterval:sinceDate:

ある日時からある秒が経過した日時で初期化した、NSDateオブジェクトを返します。

- (instancetype)initWithTimeInterval:(NSTimeInterval)seconds sinceDate:(NSDate *)refDate

Parameters
seconds
refDateへ加える秒数。負の値は、レシーバがrefDateよりも過去となるのを意味します。

refDate
基準となる日時。

Return Value
refDateからseconds秒が経過した日時で初期化した、NSDateオブジェクト。

Availability
OS X v10.0以降
Declared In
NSDate.h

- initWithTimeIntervalSince1970:

1970-01-01 00:00 GTMから引数の秒数が経過した日時で初期化した、NSDateオブジェクトを返します。

- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)seconds

Parameters
seconds
初期化するオブジェクトの日時を指定するための、標準日時の1970-01-01 00:00 GTMからの秒数。この標準日時より過去を指定するには、負の数を使います。

Return Value
標準日時からの秒数でセットされたNSDateオブジェクト。

Discussion
このメソッドは、BSDシステム関数が返す t_values 秒数が経過したNSDateオブジェクトを生成するのに便利です。

Availability
OS X v10.6以降
Declared In
NSDate.h

- initWithTimeIntervalSinceNow:

現在からの秒数でセットされた日時で初期化したNSDateオブジェクトを返します。

- (instancetype)initWithTimeIntervalSinceNow:(NSTimeInterval)seconds

Parameters
seconds
現在日時とレシーバを初期化しようとしている日時との秒数差。負の数は、現在よりも過去の日時を指定していようとしているのを意味します。

Return Value
現在からのseconds秒でセットされた日時で初期化したNSDateオブジェクト。

Availability
OS X v10.0以降
See Also
+ dateWithTimeIntervalSinceNow:
Related Sample Code
avvideowall
Declared In
NSDate.h

- initWithTimeIntervalSinceReferenceDate:

2001-01-01 GMTからの秒数でセットされた日時で初期化したNSDateオブジェクトを返します。

- (instancetype)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)seconds

Parameters
seconds
標準時間 (2001-01-01 GMT) へ加える秒数。負の数は、レシーバを標準時間よりも過去としようとしているのを意味します。

Return Value
絶対標準時間からのseconds秒でセットされた日時で初期化したNSDateオブジェクト。

Discussion
このメソッドはNSDateクラスの指定イニシャライザで、NSDateのサブクラスを使うには必ず宣言しなくてはなりません。特定の日時クラスを生成するためにNSDateをサブクラス化するのなら、このメソッドをオーバーライドしなくてはなりません。

Availability
OS X v10.0以降
See Also
+ dateWithTimeIntervalSinceReferenceDate:
– init
Declared In
NSDate.h

- isEqualToDate:

引数オブジェクトがNSDateオブジェクトであり、レシーバと全く等価であるかを真偽値で返します。

- (BOOL)isEqualToDate:(NSDate *)anotherDate

Parameters
anotherDate
レシーバと比較する日時。

Return Value
anotherDateNSDateオブジェクトで、レシーバと全く等価であれば、YESとなります。そうでないならNOです。

Discussion
このクラスは、比較している2つの日時において、秒数以下の違いを検出します。より低い精度で比較したければ、2つの日時を比較するtimeIntervalSinceDate:を使ってください。

Availability
OS X v10.0以降
See Also
– compare:
– earlierDate:
isEqual: (NSObject protocol)
– laterDate:
Declared In
NSDate.h

- laterDate:

レシーバと引数の日時を比較して、より遅い方を返します。

- (NSDate *)laterDate:(NSDate *)anotherDate

Parameters
anotherDate
レシーバと比較する日時。

Return Value
レシーバとanotherDateを比較して、より遅い方。これにはtimeIntervalSinceDate:を使います。レシーバとanotherDateが同じ日時なら、レシーバが返ります。

Availability
OS X v10.0以降
See Also
– compare:
– earlierDate:
isEqual: (NSObject protocol)
Declared In
NSDate.h

- timeIntervalSince1970

レシーバと1970-01-01 GMTとの差分を返します。

- (NSTimeInterval)timeIntervalSince1970

Return Value
レシーバと1970-01-01 GMTとの差分。もし、レシーバがその標準時よりも過去ならば、返り値は負になります。

Availability
OS X v10.0以降
See Also
– timeIntervalSinceDate:
– timeIntervalSinceNow
– timeIntervalSinceReferenceDate
+ timeIntervalSinceReferenceDate
Declared In
NSDate.h

- timeIntervalSinceDate:

レシーバと引数の日時との差分を返します。

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate

Parameters
anotherDate
レシーバと比較する日時。

Return Value
レシーバとanotherDateとの差分。anotherDateよりレシーバが過去ならば、返り値は負になります。

Availability
OS X v10.0以降
See Also
– timeIntervalSince1970
– timeIntervalSinceNow
– timeIntervalSinceReferenceDate
Related Sample Code
BlastApp
Declared In
NSDate.h

- timeIntervalSinceNow

レシーバと現在の日時との差分を返します。

- (NSTimeInterval)timeIntervalSinceNow

Return Value
レシーバと現在の日時との差分。現在の日時よりもレシーバが過去ならば、返り値は負になります。

Availability
OS X v10.0以降
See Also
– timeIntervalSinceDate:
– timeIntervalSince1970
– timeIntervalSinceReferenceDate
Declared In
NSDate.h

- timeIntervalSinceReferenceDate

レシーバと2001-01-01 GMTとの差分を返します。

- (NSTimeInterval)timeIntervalSinceReferenceDate

Return Value
システムの絶対標準時間(OLOR(#888888){2001-01-01 GTM})とレシーバとの差分。その標準時間に比べてレシーバが過去ならば、返り値は負になります。

Availability
OS X v10.0以降
See Also
– timeIntervalSinceDate:
– timeIntervalSinceNow
+ timeIntervalSinceReferenceDate
Related Sample Code
CITransitionSelectorSample
CITransitionSelectorSample2
CryptoCompatibility
From A View to A Movie
GLSL Basics Cocoa
Declared In
NSDate.h

定数

NSTimeIntervalSince1970

NSDateは、1970-01-01から標準日時の2001-01-01までの秒数を定数として提供しています。

#define NSTimeIntervalSince1970 978307200.0

Constants

NSTimeIntervalSince1970
1970-01-01から標準日時の2001-01-01までの秒数。
OS X v10.0以降
Declared in NSDate.h

Discussion
UNIX時間において、1970-01-01はエポック時間(開始位置)です。

Declared In
NSDate.h

通知

NSSystemClockDidChangeNotification

システム時間が変更されたときに通知されます。これは、settimeofday()呼び出し、もしくはユーザがシステム環境設定の日付と日時プレファレンスで値を変えたときに呼び出されます。通知オブジェクトはnullです。この通知には、userInfo辞書が含まれていません。

Availability
OS X v10.6以降
Declared In
NSDate.h

付録A 廃止されたNSDateメソッド

廃止されると決められているメソッドは、ほかで置き換えられており、将来はサポートされなくなります。

OS X v10.6で廃止

- addTimeInterval:

レシーバへ与えられた秒数を加えてた新しいメソッドを返します。(OS X 10.6で廃止。このメソッドは、dateByAddingTimeInterval:で置き換えられています。)

- (id)addTimeInterval:(NSTimeInterval)seconds

Parameters
seconds
レシーバへ加える秒数。レシーバより過去の日時を指定するオブジェクトを返すには、秒数へ負の値を使ってください。

Return Value
レシーバからseconds秒後とセットされた、新しいNSDateオブジェクト。この返り値は、レシーバがセットしているのと違うものであるべきでしょう。

Availability
OS X v10.0以降
OS X v10.6以降で廃止
See Also
– initWithTimeInterval:sinceDate:
– timeIntervalSinceDate:
– dateByAddingTimeInterval:
Declared In
NSDate.h

The original issue.

NSDate Class Reference,
for OS X: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html
for iOS: https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html

 
DateNotes
2013-09-18Updated for OS X v10.9. Methods that returned id now return instancetype.
Noted that the init method is a designated initializer for NSDate.
2013-04-23Updated deprecation information for dateWithCalendarFormat:timeZone:.
2011-04-05Updated description of description method.
2010-04-29Added method dateByAddingTimeInterval:.
2010-01-17Removed inappropriate references to dateWithNaturalLanguageString:.
2009-08-17Updated for OS X v 10.6. Added new methods. Deprecated addTimeInterval:. Added new notification.
2008-10-15Revised documentation of description and descriptionWithLocale: methods.
2008-06-09Added a warning to methods related to NSCalendarDate that it is slated for deprecation.
2007-10-31Updated the definitions of the laterDate: and earlierDate: methods.
2007-03-06Added notes regarding transition between Julian and Gregorian calendar.
2007-02-27Updated for OS X V10.5.
2006-05-23Corrected sentence fragment in class description.
First publication of this content as a separate document.
 

Copyright © 2013 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2013-09-18

 

This Japanese translation was freshly written by naokitakisawa, may revised nicely by skillful person in the future ...