이번 게시글에서는 날짜와 관련된 속성들을 알아보려고 합니다~
왜와이?!?!
곧 있을 플젝에 쓰려구요~
자 우선 Calendar부터 갑니다
Calendar
let currentDate = Date() // 현재 날짜
// 현재 지역 및 설정에 맞는 달력
let calendar = Calendar.current
// 현재 날짜에서 연도, 월, 일 추출
let year = calendar.component(.year, from: currentDate)
let month = calendar.component(.month, from: currentDate)
let day = calendar.component(.day, from: currentDate)
print("Year: \(year), Month: \(month), Day: \(day)")
// 날짜에 1일 추가
if let tomorrow = calendar.date(byAdding: .day, value: 1, to: currentDate) {
print("Tomorrow's Date: \(tomorrow)")
}
// 날짜에 1일 빼기
if let yesterday = calendar.date(byAdding: .day, value: -1, to: currentDate) {
print("Tomorrow's Date: \(yesterday)")
}
// 날짜에 1개월 추가
if let nextMonth = calendar.date(byAdding: .month, value: 1, to: currentDate) {
print("Tomorrow's Date: \(nextMonth)")
}
위의 예시 뿐만 아니라 .year, .hour, .second, .minute 을 사용해 추가적으로 사용자가 원하는 값을 직접 얻을 수 있습니다.
또 좀 특이했던 속성도 있었는데요
아래 두 속성을 통해 내가 지정한 날짜가 오늘인지 내일인지 주말인지도 알 수 있더라구요
if calendar.isDateInToday(currentDate) {
print("오늘입니다!")
}
if calendar.isDateInWeekend(currentDate) {
print("오늘은 주말입니다!")
}
if calendar.isDateInTomorrow(currentDate) {
print("주어진 날짜는 내일입니다.")
} else {
print("주어진 날짜는 내일이 아닙니다.")
}
마지막으로 소개드릴 calendar의 요소는요 이전 글에서도 다뤘던 친구인데요
let date1 = Date() // 현재 날짜와 시간
let date2 = calendar.date(byAdding: .day, value: 1, to: Date())! // 현재 날짜로부터 0일 추가, 즉 같은 날
let isSameDay = calendar.isDate(date1, inSameDayAs: date2)
isSameDayAs를 통해 두 날짜가 서로 같은 날인지 알 수 있는 속성도 있습니다.
Calendar속성들을 짧막하게나마 정리해봤는데, 앞으로 더 생긴다면 중간중간 수정해보겠습니다~
DateComponents
이 친구는 날짜의 특정 요소를 구성하는데 사용됩니다!
var components = DateComponents()
components.year = 2024
components.month = 8
components.day = 25
if let specificDate = calendar.date(from: components) {
print("Specific Date: \(specificDate)")
}
제가 다음 프로젝트에서 많이 사용할 것만 같은 날짜 차이 계산은 말이죠
let date1 = calendar.date(from: DateComponents(year: 2023, month: 9, day: 10))!
let date2 = calendar.date(from: DateComponents(year: 2024, month: 9, day: 10))!
let difference = calendar.dateComponents([.year, .month, .day], from: date1, to: date2)
print("Difference - Years: \(difference.year!), Months: \(difference.month!), Days: \(difference.day!)")
지금은 정리하기 위해 년/월/일 을 다 구했지만 저는 아마 .day에 대한 값정도만 사용할 것 같습니다.
DateFormatter
날짜를 문자열로 변환하거나 문자열을 날짜로 변환하는 데 사용됩니다.
각각의 경우를 소개시켜드리면
1. 날짜 > 문자열
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
let formattedDate = dateFormatter.string(from: Date())
print(" formattedDate: \(formattedDate)")
2. 문자열 > 날짜
let dateString = "2024-09-15 14:00"
let date = dateFormatter.date(from: dateString)
print("date: \(String(describing: date))")
.
.
여기까지 Date와 관련된 메서드들을 알아봤는데요!
이를 사용한 프로젝트에 대한 후기까지 다~음에 들고 오겠습니다.
.
.
.
.
요기까지
'Swift' 카테고리의 다른 글
[iOS] About state, binding (0) | 2024.09.08 |
---|---|
[iOS] About Hot & Cold Observable (1) | 2024.09.03 |
[iOS] About GCD (Grand Central Dispatch) (2) | 2024.08.24 |
[iOS] About Pagination (0) | 2024.08.21 |
[iOS] About Subscribe, Bind, Driver + @ (0) | 2024.08.17 |