概要

SwiftでDateとStringを相互変換するときのプログラムを紹介。

プログラム

import UIKit

class DateUtils {
    class func dateFromString(string: String, format: String) -> Date {
        let formatter: DateFormatter = DateFormatter()
        formatter.calendar = Calendar(identifier: .gregorian)
        formatter.dateFormat = format
        return formatter.date(from: string)!
    }

    class func stringFromDate(date: Date, format: String) -> String {
        let formatter: DateFormatter = DateFormatter()
        formatter.calendar = Calendar(identifier: .gregorian)
        formatter.dateFormat = format
        return formatter.string(from: date)
    }
}

// 元の日付の文字列
let dateString = "2021/09/20 12:34:56 +09:00"

// Dateに変換
let date = DateUtils.dateFromString(dateString, format: "yyyy/MM/dd HH:mm:ss Z")
print(date)
// => "2021-09-20 12:34:56 +0900\n"

// Stringに再変換
print(DateUtils.stringFromDate(date, format: "yyyy年MM月dd日 HH時mm分ss秒 Z"))
// => "2021年09月20日 12時34分56秒 +0900\n"