●Calendar.currentとcomponentプロパティで現在の日付を表示させる。
//現在時刻をdate型で生成 let date = Date() //ユーザーの現在時刻のグレゴリオン歴カレンダーを生成 let calendar = Calendar.current //日付から一つの要素を取り出す let year = calendar.component(.year, from: date) let month = calendar.component(.month, from: date) let day = calendar.component(.day, from: date) let today = "\(year)年\(month)月\(day)日" print("今日は\(today)です!")
出力結果
Date カレンダーやタイムゾーンに依存しない特定の時点に関するクラス。
Calendar 1年の始まり、長さ、および区分が定義されているカレンダーに関する情報が入ってるクラス。
current ユーザーの現在時刻を返すプロパティ。
component 日付の一つの要素を返すメソッド。
補足:Date()で生成される時刻はグリニッジ標準時表記の為、日本時間から9時間ずれているが、同じ特定の時刻を表している。
●componentとdateComponentの違い
componentが日付の一つの要素を返すのに対し、dateComponentは日付の全ての要素を返し、さらにうるう年かも判定する。
let date = Date() let calendar = Calendar.current //日付の一つの要素を返す let component = calendar.component(.day, from: date) //日付の全ての要素を返す let components = calendar.dateComponents([.year, .month, .day], from: date) print("componentの場合: \(component)") print("dateComponentの場合: \(components)")
●datecomponentから一つずつ要素を取り出すこともできる
let calendar = Calendar(identifier: .gregorian) let date = calendar.dateComponents([.year, .month, .day], from: Date()) //datecomponentsから一つずつ取り出す let thisYear = date.year! let thisMonth = date.month! let today = date.day! print("今日は\(thisYear)年\(thisMonth)月\(today)日です!")