文書   >   Foundation   >   Date and Times   >   Date   >   NSDate
クラス
NSDate
Date にブリッジする特定の時点の表現。参照セマンティクスやその他の Foundation 特有の動作が必要な場合は NSDate を使用して下さい。
概観
NSDate オブジェクトは、特定のカレンダーシステムまたはタイムゾーンとは関係なく、単一の時点をカプセル化します。Date オブジェクトは不変であり、絶対参照日付 (2001 年 1 月 1 日 00:00:00 UTC) に対する不変時間間隔を表します。
NSDate クラスは、日付の比較、2 つの日付間の時間間隔の計算、および別の日付に対する時間間隔からの新しい日付の作成方法を提供します。NSDate オブジェクトを DateFormatter オブジェクトと共に使用して、日付と時刻のローカライズされた表現を作成することができます。また、NSCalendar オブジェクトを使用してカレンダー演算を行うこともできます。
NSDate は、Core Foundation の 対応する相手、CFDate と通話無料でブリッジされています。通話無料のブリッジの詳細については、通話無料でブリッジ を参照してください。
サブクラス化する際の注意点
特定のカレンダーシステムでの作業をより簡単にするため、またはより細かい時間的精度で日付と時刻の値を扱うために、NSDate をサブクラス化することができます。
オーバーライドするべきメソッドとその他の要件
private サブクラスまたは public サブクラスで提供される動作とは異なる動作を取得するために NSDate をサブクラス化する必要がある場合は、次の作業を行なわなければなりません。
- 日付と時刻の値を保持する適切なインスタンス変数を宣言します (絶対参照日付を基準にして)
- timeIntervalSinceReferenceDate インスタンスメソッドをオーバーライドして、インスタンス変数に基づいて正しい日付と時刻の値を指定します。
- 指定初期化メソッドの 1 つである init(timeIntervalSinceReferenceDate:) をオーバーライドします
- カレンダーシステムを表すサブクラスを作成する場合は、過去と未来の期間をこのカレンダーの単位に分割するメソッドを定義します
- NSDate はこれらのプロトコルを採用しているため、NSCopying プロトコルと NSCoding プロトコルで必要なメソッドを実装します
特別の考慮事項
あなたのサブクラスでは、NSDate (2001 年 1 月 1 日 00:00:00 UTC) で使用されている絶対参照日付とは異なる参照日付を使用することがあります。もしそうであれば、timeIntervalSinceReferenceDate メソッドと init(timeIntervalSinceReferenceDate:) メソッドの実装で絶対参照日付を使用しなければなりません。つまり、これらのメソッドのタイトルで参照される参照日付は絶対参照日付です。これらのメソッドで絶対参照日付を使用しない場合、あなたのサブクラスの NSDate オブジェクトと private サブクラスの NSDate オブジェクトの比較は機能しません。
トピックス
日付(Date)の初期化
現在の日付と時刻に初期化された日付オブジェクトを返します。
init(timeIntervalSinceNow: TimeInterval)
現在の日付と時刻から与えられた相対秒数で初期化された日付オブジェクトを返します。
init(timeInterval: TimeInterval, since: Date)
与えられた秒数だけ別の日付に相対して初期化された日付オブジェクトを返します。
init(timeIntervalSinceReferenceDate: TimeInterval)
2001 年 1 月 1 日 00:00:00 UTC を基準にして与えられた秒数で初期化された日付オブジェクトを返します。
init(timeIntervalSince1970: TimeInterval)
2001 年 1 月 1 日 00:00:00 UTC を基準にして与えられた秒数で初期化された日付オブジェクトを返します。
与えられた unarchiver 内のデータから初期化された日付オブジェクトを返します。
時間的境界の取得
遠い将来の日付を表す日付オブジェクト。
遠い過去の日付を表す日付オブジェクト。
日付の比較
func isEqual(to: Date) -> Bool
指定されたオブジェクトが受信者と正確に等しい日付かどうかを示すブール値を返します。
func earlierDate(Date) -> Date
受信者と別の指定された日付のうち早い日付を返します。
func laterDate(Date) -> Date
受信者と別の指定された日付のうち遅い日付を返します。
func compare(Date) -> ComparisonResult
受信者と指定された別の日付の時間的順序を示します。
時間間隔の取得
func timeIntervalSince(Date) -> TimeInterval
受信者と与えられた別の日付との間隔を返します。
var timeIntervalSinceNow: TimeInterval
日付オブジェクトと現在の日付および時刻との間隔。
var timeIntervalSinceReferenceDate: TimeInterval
日付オブジェクトと 2001 年 1 月 1 日 00:00:00 UTC との間隔。
var timeIntervalSince1970: TimeInterval
日付オブジェクトと 1970 年 1 月 1 日 00:00:00 UTC との間隔。
class var timeIntervalSinceReferenceDate: TimeInterval
2001 年 1 月 1 日 00:00:00 UTC と現在の日付および時刻との間隔。
var NSTimeIntervalSince1970: Double
1970 年 1 月 1 日から基準日の 2001 年 1 月 1 日までの秒数。
時間間隔の追加
func addingTimeInterval(TimeInterval) -> Self
受信者に対して指定された秒数に設定された新しい日付オブジェクトを返します。
日付の記述
日付オブジェクトの文字列表現。
func description(with: Any?) -> String
指定されたロケールを使用して日付の文字列表現を返します。
var customPlaygroundQuickLook: PlaygroundQuickLook
このオブジェクトのカスタムプレイグラウンドクイックルック。
  廃止  
通知の認識
static let NSSystemClockDidChange: NSNotification.Name
システムクロックが変わるたびに通知が送信されます。
過去の操作
class func date(withNaturalLanguageString: String) -> Any?
与えられた文字列で指定された日付と時刻に設定された日付オブジェクトを作成して返します。
  廃止  
class func date(withNaturalLanguageString: String, locale: Any?) -> Any?
与えられた文字列で指定された日付と時刻に設定された日付オブジェクトを作成して返します。
  廃止  
class func date(with: String) -> Any
国際文字列表現形式 (YYYY-MM-DD HH:MM:SS ±HHMM) で与えられた文字列で指定された日付と時刻の値を持つ日付オブジェクトを作成して返します。
  廃止  
国際文字列表現形式で与えられた文字列で指定された日付と時刻の値で初期化された日付オブジェクトを返します。
  廃止  
func addTimeInterval(TimeInterval) -> Any
受信者に対して与えられた秒数に設定された新しい日付オブジェクトを返します。
  廃止  
func date(withCalendarFormat: String?, timeZone: TimeZone?) -> NSCalendarDate
受信者を、与えられた書式文字列とタイムゾーンを持つカレンダーの日付に変換します。
  廃止  
func description(withCalendarFormat: String?, timeZone: TimeZone?, locale: Any?) -> String?
与えられた変換指定子で指定された形式で日付の文字列表現を返します。
  廃止  
関連
以下からの継承
以下に準拠
- CKRecordValue
- CustomPlaygroundQuickLookable
- CVarArg
- Equatable