PHPでいうところのdate("ymd",strtotime("2020-01-01 00:00:00")) みたいなことをやりたいわけです。
今回のゴール
2021-01-11 12:50:10 みたいな文字列を受け取ったら、例えば好きに
01-11-2021 にしてみたり、
11-01-21 にしてみたりとかをできるようにしたいです。
流れ
例のごとく型にうるさいです。
文字列を受け取る(String)
↓
Date型にする
↓
Date型のデータから、好きな形のフォーマットの文字列に出力する
///参考サイトから拝借
///文字列を投げて、正常に変換できたらそのままリターン、できなかったら現在時刻をリターン
func StringToDate(dateValue: String, format: String) -> Date {
let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: .gregorian)
dateFormatter.dateFormat = format
return dateFormatter.date(from: dateValue) ?? Date()
}
let dateFormatter = DateFormatter()
///出力したいフォーマット
dateFormatter.dateFormat = "MM-dd"
//変換する文字列
let dateStr = "2022-03-22 11:22:33"
///文字列変換
let dateString = dateFormatter.string(from: StringToDate(dateValue: dateStr, format: "yyyy-MM-dd HH:mm:ss"))
///中身確認
print(dateString)
で、結果は
03-22
になるわけですね。
まぁ、これでどんな感じのフォーマットがきても好き放題変換できますね。