1. ホーム
  2. swift

[解決済み] Swiftで文字列を日付に変換する

2022-04-20 01:36:39

質問

この文字列はどのように変換すればよいのでしょうか "2016-04-14T10:44:00+0000"NSDate で、年、月、日、時間だけを残すのですか?

T というのは、日付の操作に慣れている私にとって、本当に邪魔なものなのです。

どのように解決するのですか?

  • ISO8601の文字列を日付に変換する

    let isoDate = "2016-04-14T10:44:00+0000"
    
    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale(identifier: "en_US_POSIX") // set locale to reliable US_POSIX
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
    let date = dateFormatter.date(from:isoDate)!
    
    
  • 日付から、年、月、日、時間の日付成分を取得する

    let calendar = Calendar.current
    let components = calendar.dateComponents([.year, .month, .day, .hour], from: date)
    
    
  • 最後に新しい Date オブジェクトを作成し、分と秒を削除します。

    let finalDate = calendar.date(from:components)
    
    

便利なフォーマッタも考えてみましょう ISO8601DateFormatter iOS 10 / macOS 12 で導入されました。

let isoDate = "2016-04-14T10:44:00+0000"

let dateFormatter = ISO8601DateFormatter()
let date = dateFormatter.date(from:isoDate)!