[iOS/Swift] Date(), Calendar() 사용법 / 날짜 비교하기 / 날짜 설정

(까먹지 않기 위해 대충 기록하기, 나중에 더 내용을 추가해서 정리할 예정)

 

1. 기본 상용법 : 오늘 날짜 표시하기

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm"

let now = Date()
print(formatter.string(from: now))

// 결과 : 2021-07-12 18:00

 

2. 시간, 분 지정하기 (오늘날짜 기준)

let now = Calendar.calendar.date(bySettingHour: 0, minuteL 0, second: 0, of: Date())!
print(formatter.string(from: now))

// 결과 : 2021-07-12 00:00
// 결과는 현재 테스트 시간 기준. '시, 분, 초'만 바뀌었다.
// to: Date() 는 오늘 날짜

 

3. 시간, 분 더하거나 빼기 2가지 방법 (오늘날짜 기준)

let timeTest = now.addingTimeInterval(-86400)
print(formatter.string(from: timeTest))

let timeTest2 = now.addingTimeInterval(86400)
print(formatter.string(from: timeTest2))

// 결과1 : 2021-07-11 18:00
// 결과2 : 2021-07-13 18:00

// 86400은 하루를 의미함.
// 현재시간을 기준으로 하기 때문에, 날짜만 바뀌고 시와 분은 바뀌지 않음
let timeTest = Calendar.current.date(byAdding, .hour, value: -24, to: Date());
print(formatter.string(from: temeTest))

// 결과 : 2021-07-11 18:00

 

4. 원하는 날짜 및 시간 지정

let timeTest = now.addingTimeInterval(-86400)
let selectTime = Calendar.current.date(bySettingHour: 0, minute: 0, of: stimeTest)!
print(formatter.string(from: selectTime))


// 결과 : 2021-07-11 00:00
// 위에서 활용했던 2번과 3번 응용

 

 

여기까지 Date 및 Calendar 기본 활용하는 방법입니다.

swift 시작한지 얼마 안되었는데 저에겐 아직 너무 어려운게 많네요..! 분명 며칠만 지나면 위에 코드들 보고 부끄러움도 잔뜩 느낄것 같고..ㅎㅎ

일단 급한대로 제가 필요한 방법을 찾다보니, 올바른 방법은 아닐 가능성이 큽니다.

부족한점 알려주시면 감사하고 그게 아니라면 누군가에게 도움이 되었으면 합니다.