0
2

More than 1 year has passed since last update.

【Swift】ISO8601形式についてまとめた

Last updated at Posted at 2023-04-05

はじめに

最近はDateをISO8601形式に変換して使うことが多いです。
後から見返してわかるようにまとめてみました。

DateからISO8601形式のStringに変換

let date = Date()

let dateFormatter = ISO8601DateFormatter()
dateFormatter.string(from: date)

ISO8601形式のStringからDateに変換

let dateString = "2023-04-05T22:32:10Z"

let dateFormatter = ISO8601DateFormatter()
dateFormatter.date(from: dateString)

ミリ秒を含んだISO8601形式

import Foundation

let dateString = "2023-04-05T22:32:10.123Z"

let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = .withFractionalSeconds
dateFormatter.date(from: dateString)

デコード時にdateDecodingStrategyを使用してミリ秒を扱うときは以下の記事

Tがない

import Foundation

let dateString = "2023-04-05 22:32:10Z"

let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = .withSpaceBetweenDateAndTime
dateFormatter.date(from: dateString)

-がない

import Foundation

let dateString = "20230405T22:32:10Z"

let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = .withDashSeparatorInDate
dateFormatter.date(from: dateString)

:がない

import Foundation

let dateString = "2023-04-05T223210Z"

let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = .withColonSeparatorInTime
dateFormatter.date(from: dateString)

おわり

オプションは他にもたくさんあります。
今後、使うことがあれば追加していこうと思います。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2