// カレンダー(日付)の情報を取得、操作を行う構造体
// サンプルソースは、グレゴリオ暦を使用する
// 1年を365日(地球が太陽を1周する日数)とする
// 1周する日数(365.2422日)のずれを閏年で補正する
let calendar = Calendar(identifier: .gregorian)
// 日付フォーマット
let dateFormatter = DateFormatter()
dateFormatter.calendar = calendar
// 本年の1月1日を取得
let dateComponents = calendar.dateComponents([.year], from: Date())
let newYear = calendar.date(from: dateComponents)
// 西暦4桁、年月日時分秒の前0ありで表示
dateFormatter.dateFormat = "yyyy年MM月dd日 HH時mm分ss秒"
print(dateFormatter.string(from: newYear!))
// -> 2023年01月01日 00時00分00秒
// 西暦2桁、年月日時分秒の前0なしで表示
dateFormatter.dateFormat = "yy年M月d日 H時m分s秒"
print(dateFormatter.string(from: newYear!))
// -> 23年1月1日 0時0分0秒
// 日本のカレンダーを使って和暦を表示
dateFormatter.calendar = Calendar(identifier: .japanese)
dateFormatter.locale = Locale(identifier: "ja_JP")
dateFormatter.dateFormat = "Gyyyy年M月d日(E曜日) H時m分s秒"
print(dateFormatter.string(from: newYear!))
// -> 令和5年1月1日(日曜日) 0時0分0秒
// 中華民国のカレンダーを使って中華民国暦を表示
dateFormatter.calendar = Calendar(identifier: .republicOfChina)
dateFormatter.locale = Locale(identifier: "zh")
dateFormatter.dateFormat = "Gyyy年M月d日(E) H時m分s秒"
print(dateFormatter.string(from: newYear!))
// -> 民国112年1月1日(周日) 0時0分0秒
参考リンク


コメント