본문 바로가기
2023년 부터/iOS&Swift

[Swift] Date에서 Year, Month, Day 추출 및 날짜 차이 비교

by JeongUPark 2023. 11. 21.
반응형

개발을 하다보면 날짜를 구하거나, 날짜차이를 알아야 할때가 있습니다. 이럴 경우 어떻게 처리하는지 알아 보겠습니다.

Year,  Month, Day 알아내기

Calender를 사용하면 간편하게 입력된 날짜의 Year, Month, Day를 알아낼 수 있습니다. 그럼 바로 알아보겠습니다.

let now = Date()
let components = Calendar.current.dateComponents([.year,.month, .day], from: now)
let year = components.year
let month = components.month
let day = components.day

 

위와 같이 처리할 경우 Year, Month , day의 값을 Int로 알아낼수 있습니다.

만일 현재 날짜가 아닌 입력된 날짜라면 그 입력값을 Date로 변경해준 후 위의 dateComponents를 사용해주면 됩니다.

날짜 차이 구하기

날짜 차이의 경우에도 동일한 dateComponents를 사용해주면 됩니다. 다만 차이점은 from뒤에 to가 필요합니다.

let myDateComponents = DateComponents(year: 2023, month: 11, day: 21)
let startDate = Calendar.current.date(from: myDateComponents)!
//년,월,일 차이 계산
let offsetComps = Calendar.current.dateComponents([.year,.month,.day], from: startDate, to: Date())
let offsetYear = offsetComps.year
let offsetMonth = offsetComps.month
let offsetDay =  offsetComps.day
// 일 차이 계산
let dayOffsetComps = Calendar.current.dateComponents([.day], from: startDate, to: Date())
let onlyDayOffset = dayOffsetComps.day

위가 같이 작성할 경우 현재와 2023년 11월 21일의 차이를 확인 할 수 있습니다.

offsetComps의 경우에는 년, 월, 일로 그 차이를 확인 할 수 있고 (ex: year: 1, month: 2, day: 3), dayOffsetComps의 경우에는 총 차이 일수(ex: 60)를 확인 할 수 있습니다. 

반응형