Swift3でISO8601フォーマットの文字列をDate型に変換する
GithubのAPIやQiitaのAPIなどのレスポンスに含まれている日付はISO8601フォーマットになっています。
その形式をSwiftのDate型で扱うために、下記のようにDate
のextension
を実装していきます。
Date+ISO8601.swift
extension Date {
private static let ISO8601Formatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZ"
return dateFormatter
}()
init?(fromISO8601 string: String) {
guard let date = Date.ISO8601Formatter.date(from: string) else {
return nil
}
self = date
}
}
上記のextensionを利用することで、下記のように扱うことができるようになります。
let dateString = "2014-07-31T05:56:19Z"
let date = Date(fromISO8601: dateString) // Optional(2014-07-31 05:56:19 +0000)
Author And Source
この問題について(Swift3でISO8601フォーマットの文字列をDate型に変換する), 我々は、より多くの情報をここで見つけました https://qiita.com/marty-suzuki/items/e1bad9eab06575dd007b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .