View에 보여질 때 날짜를 표시하는 경우가 생각보다 가끔씩 생겨서 간략하게 정리해보려합니다.
달력이나 시간대와 관계없이 특정 시점입니다.
공식문서에서 정의하기를 Date값은 특정 달력 시스템이나 표준 시간대와 관계없이 사용된다고 합니다.
Date 값은 절대 기준 날짜를 기준으로 한 시간 간격을 나타냅니다.
또한 DateFormatter 인스턴스와 함께 Date 값을 사용하여 날짜 및 시간의 localized
된 표현을 만들고 Calender 인스턴스와 함께 달력 산술을 수행합니다.
(이 부분에서 localized
로 인해 다른 국가에서의 포맷에 맞춰 글로벌한 앱을 개발하게된다면 주의해야함을 느끼게됩니다!)
여러가지의 초기화 방법이 있지만 기본적인 init()
메서드로 출력되는 값을 확인해보려합니다.
print(Date())
// 2023-05-16 10:22:46 +0000
이제 Foundation Framework에 Embed되어있는 DateFormatter()를 사용하여 출력 포맷을 변경하는 메서드를 확인합니다.
enum MagicLiteral {
static let baseFormat
static let onlyYear
static let HourAndMinutes
}
let formatter = DateFormatter()
formatter.dateFormat = MagicLiteral.baseFormat // 1️⃣ yyyy-MM-dd HH:mm:ss 형식(2023-05-16 10:22:46)
formatter.dateFormat = MagicLiteral.onlyYear // 2️⃣ yyyy
formatter.dateFormat = MagicLiteral.HourAndMinutes // 3️⃣ HH:mm
let currentDateString = formatter.string(from: date)
guard let date = Calendar.current.date(byAdding: .day, value: -1, to: Date()) else {
return ""
}
let formatter = DateFormatter()
formatter.dateFormat = MagicLiteral.dateFormat
let currentDateString = formatter.string(from: date)
return currentDateString