Open1
Swift: Date.formatted(_:)で文字列化する
Date
を文字列にする場合、DateFormatter
を使うというのがよく書いてあります。
ロケール指定したり、ちょっと面倒ですね。
iOS 15からは、Date.formatted()
が使えます。
今日の日付を"2024/3/10"
として得るなら、
let dateText = DateTime.now.formatted(date: .numeric, time: .omitted)
とすれば取得できます。
で、これ月を(ついでに日も)2桁、つまり03
で取りたいとしたらどうするのかなということで調べました。
let dateText = Date.now.formatted(Date.FormatStyle(date: .numeric, time: .omitted).month(.twoDigits).day(.twoDigits))
こんな感じですね。これで"2024/03/10"
が取得できます。
Date.FormatStyle()
に次々モディファイアを適用するようなイメージです。
イニシャライザのdate: .numeric
の部分がないと、例えば日本語ロケールの場合2024年03月10日
になってしまいます。