●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)日です!")
