HIT해

[Swift] DateFormatter 본문

Swift/Swift 알고리즘

[Swift] DateFormatter

힛해 2024. 11. 1. 00:57
728x90

1. DateFormatter 설정

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"

"yyyy" // 4자리 연도 (2024)
"yy"   // 2자리 연도 (24)

// 월
"MM"   // 2자리 월 (01-12)
"M"    // 1자리 월 (1-12)

// 일
"dd"   // 2자리 일 (01-31)
"d"    // 1자리 일 (1-31)

// 시간
"HH"   // 24시간 형식, 2자리 (00-23)
"H"    // 24시간 형식, 1자리 (0-23)
"hh"   // 12시간 형식, 2자리 (01-12)
"h"    // 12시간 형식, 1자리 (1-12)

// 분
"mm"   // 2자리 분 (00-59)
"m"    // 1자리 분 (0-59)

// 초
"ss"   // 2자리 초 (00-59)
"s"    // 1자리 초 (0-59)

// 추가적으로 알면 유용한 포맷
"a"    // 오전/오후
"E"    // 요일 (월,화,수...)
"EEEE" // 전체 요일 (월요일,화요일...)

 

2. String to Date

 dateFormatter.dateFormat = "HH:mm"
 dateFormatter.date(from: "11:40")

 

 

3. 날짜 더하기

Calendar.current.date(byAdding: .minute, value : 더할값, to: 기존 시간)!

let date = dateFormatter.date(from: dateString)!
Calendar.current.date(byAdding: .hour, value: 20, to: date)!
// Calendar.current.date 는 고정

 

4. 날짜 차이 구하기

let timeDiff = Calendar.current.dateComponents([.hour, .minute], from: currentTime, to: targetTime)
let hours = timeDiff.hour ?? 0
let minutes = timeDiff.minute ?? 0

 

from에 이전 날짜를 넣어줘야한다. 그렇지 않으면 음수가 나오게 된다.

[] 배열 에 넣는 값은 어떤 값들을 계산할지를 정해준다,

그렇게 나온 dateComponents ( timeDiff ) 에서

.minute  .hour 를 사용해서 특정 값을 추출해준다.

 

5. DateComponets 활용하기

var threeDaysComponents = DateComponents()
threeDaysComponents.day = 3
let threeDaysLater = calendar.date(byAdding: threeDaysComponents, to: now)

 

DateComponents 객체를 생성하고 값을 설정해주면

 

날짜를 더할때 어떤 값을 더할지 설정해주지 않아도된다. ( value 값을 넣지 않아도됨 )

Calendar.current.date(byAdding: .hours, value : 30, to : 기존날짜)