date
Swift
DateFormatter

【Swift4】Date()の9時間のズレを調整【Date】

Date()はGMTベースなので日本では9時間ズレます。
単純にシステム日時が欲しい時のためにメソッドをひとつ追加します。

Dateを拡張

extension Date {

    func toStringWithCurrentLocale() -> String {

        let formatter = DateFormatter()
        formatter.timeZone = TimeZone.current
        formatter.locale = Locale.current
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

        return formatter.string(from: self)
    }

}

テスト

// 15時に実行

let date = Date()
print(date)
print(date.toStringWithCurrentLocale())

// 2017-12-28 06:00:30 +0000
// 2017-12-28 15:00:30