1. 문자열 → 날짜 / 날짜 → 문자열
//date -> String, String -> Date
extension String {
func toDate() -> Date? { //"yyyy-MM-dd HH:mm:ss"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(identifier: "UTC")
if let date = dateFormatter.date(from: self) {
return date
} else {
return nil
}
}
}
extension Date {
func toString() -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(identifier: "UTC")
return dateFormatter.string(from: self)
}
}
//출처: <https://wiwi-pe.tistory.com/30> [선생님 개발블로그가 하고싶어요.:티스토리]
2. 날짜연산
let input = "2013.12.13".toDate() ?? Date()
//특정 개월수 이후 날짜
var dateComponent = DateComponents()
dateComponent.month = 24
let futureDate = Calendar.current.date(byAdding: dateComponent, to: input) ?? Date()
print(futureDate.toString())
//특정 날수 이후 날짜
var dateComponentDay = DateComponents()
dateComponentDay.day = 3210
let futureday = Calendar.current.date(byAdding: dateComponentDay, to: input) ?? Date()
print(futureday.toString())
let someday = DateComponents(year: 2022,month: 3,day: 1)
let tmp = Calendar.current.dateComponents([.day], from: input,to: Date()).day
//날짜 비교연산도 가능
futureday > futureDate
futureday == futureDate
futureday < futureDate
print(input)
print(input.toString())