日付 – Swift

    // カレンダー(日付)の情報を取得、操作を行う構造体
    // サンプルソースは、グレゴリオ暦を使用する
    // 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秒

参考リンク

カレンダーのマニュアル

日付フォーマット識別子について

ロケール一覧

コメント

タイトルとURLをコピーしました