ISO8601 DateFormitter: iOS(Swift)에서 날짜와 시간을 ISO8601 형식으로 처리
ISO8601DateFormatter
를 사용했기 때문에 요약했습니다.ISO8601은
위키백과 참조: ISO8601
ISO8601은 날짜와 시간에 관한 국제 표준이다.
기본 형식
20180904T161400+0900
확장 형식
2018-09-04T16:14:00+09:00
ISO8601 DateFormater
DateFormatter
1"yyyy-MM-dd'T'HH:mm:ssXXXXX"
기본용법 import Foundation
Date에서 ISO8601 형식으로 변환
let formatter = ISO8601DateFormatter()
formatter.string(from: date)
// 例: "2018-09-18T02:00:00Z"
ISO8601에서 Date로 변환
let formatter = ISO8601DateFormatter()
formatter.date(from: "2018-09-18T02:00:00Z")
주의 사항
속성을 다시 설정한 후 CFDateFormatterRef
다시 생성될 수 있어 비용이 매우 높습니다.
Please note that there can be a significant performance cost when resetting these properties. Resetting each property can result in regenerating the entire CFDateFormatterRef, which can be very expensive.
옵션
기본 설정은 다음과 같습니다.(각각의 설명은후술
import Foundation
let formatter = ISO8601DateFormatter()
formatter.string(from: date)
// 例: "2018-09-18T02:00:00Z"
let formatter = ISO8601DateFormatter()
formatter.date(from: "2018-09-18T02:00:00Z")
속성을 다시 설정한 후
CFDateFormatterRef
다시 생성될 수 있어 비용이 매우 높습니다.Please note that there can be a significant performance cost when resetting these properties. Resetting each property can result in regenerating the entire CFDateFormatterRef, which can be very expensive.
옵션
기본 설정은 다음과 같습니다.(각각의 설명은후술
.withInternetDateTime
.withDashSeparatorInDate
.withColonSeparatorInTime
.withColonSeparatorInTimeZone
ISO8601DateFormatter.Options
는OptionSet
이므로 다음과 같이 추가하거나 삭제할 수 있습니다.옵션 추가
let formatter = ISO8601DateFormatter()
formatter.formatOptions.insert(.withFractionalSeconds)
formatter.string(from: date)
// 例: "2018-09-18T02:00:00.000Z"
삭제 옵션
let formatter = ISO8601DateFormatter()
formatter.formatOptions.remove(.withDashSeparatorInDate)
formatter.string(from: date)
// 例: "20180918T02:00:00Z"
시간대
기본값은 GMT2입니다.
시간대 변경
let formatter = ISO8601DateFormatter()
formatter.timeZone = TimeZone(identifier: "Asia/Tokyo")!
formatter.string(from: date)
// 例: "2018-09-18T11:00:00+09:00"
추가:옵션 요약
ISO8601DateFormatter.Options
예제
설명withYear
"2018"
년/①withWeekOfYear
지정→YYYY
3②기타→yyyy
withMonth
"09"
월/MM
withWeekOfYear
"2018W38"
이니셜W
+ 주 번호w
withDay
"18"
일/①withMonth
지정→dd
②withWeekOfYear
지정→ee
③기타→DDD
withTime
T02:00:00
시간/HH:mm:ss
withTimeZone
Z
, +09:00
시간대/ZZZZZ
withSpaceBetweenDateAndTime
"2018-09-18 02:00:00Z"
공간 대체 날짜 및 시간T
withDashSeparatorInDate
"20180918T02:00:00Z"
(삭제 시)
날짜 구분자-
withColonSeparatorInTime
"2018-09-18T020000Z"
(삭제 시)
시간 구분자:
withColonSeparatorInTimeZone
"2018-09-18T11:00:00+0900"
(삭제 시)
시간대 구분자:
withFullDate
"2018-09-18"
년 월 일/withYear
, withMonth
, 지정withDay
과 동일withFullTime
"02:00:00Z"
시,분,초withInternetDateTime
"2018-09-18T02:00:00Z"
RFC 3339 형식/withFullDate
, withFullTime
, withDashSeparatorInDate
, withColonSeparatorInTime
, withColonSeparatorInTimeZone
와 동일withFractionalSeconds
"2018-09-18T02:00:00.000Z"
초의 소수부 (iOS 11 이후)
참고 문장
let formatter = ISO8601DateFormatter()
formatter.timeZone = TimeZone(identifier: "Asia/Tokyo")!
formatter.string(from: date)
// 例: "2018-09-18T11:00:00+09:00"
ISO8601DateFormatter.Options
예제
설명
withYear
"2018"
년/①withWeekOfYear
지정→YYYY
3②기타→yyyy
withMonth
"09"
월/MM
withWeekOfYear
"2018W38"
이니셜W
+ 주 번호w
withDay
"18"
일/①withMonth
지정→dd
②withWeekOfYear
지정→ee
③기타→DDD
withTime
T02:00:00
시간/HH:mm:ss
withTimeZone
Z
, +09:00
시간대/ZZZZZ
withSpaceBetweenDateAndTime
"2018-09-18 02:00:00Z"
공간 대체 날짜 및 시간T
withDashSeparatorInDate
"20180918T02:00:00Z"
(삭제 시)날짜 구분자
-
withColonSeparatorInTime
"2018-09-18T020000Z"
(삭제 시)시간 구분자
:
withColonSeparatorInTimeZone
"2018-09-18T11:00:00+0900"
(삭제 시)시간대 구분자
:
withFullDate
"2018-09-18"
년 월 일/withYear
, withMonth
, 지정withDay
과 동일withFullTime
"02:00:00Z"
시,분,초withInternetDateTime
"2018-09-18T02:00:00Z"
RFC 3339 형식/
withFullDate
, withFullTime
, withDashSeparatorInDate
, withColonSeparatorInTime
, withColonSeparatorInTimeZone
와 동일withFractionalSeconds
"2018-09-18T02:00:00.000Z"
초의 소수부 (iOS 11 이후)참고 문장
위키백과 참조: 그리니치 표준시 ↩
http://www.unicode.org/reports/tr35/tr35-25.html#Date_Field_Symbol_Table ↩
Reference
이 문제에 관하여(ISO8601 DateFormitter: iOS(Swift)에서 날짜와 시간을 ISO8601 형식으로 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jpmartha/items/4edf5ca2e40f3a4c18ce텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)