Date와 DateFormatter를 이용한 출력 형태 변경하기

Jason·2023년 5월 16일
0

View에 보여질 때 날짜를 표시하는 경우가 생각보다 가끔씩 생겨서 간략하게 정리해보려합니다.

달력이나 시간대와 관계없이 특정 시점입니다.

공식문서에서 정의하기를 Date값은 특정 달력 시스템이나 표준 시간대와 관계없이 사용된다고 합니다.
Date 값은 절대 기준 날짜를 기준으로 한 시간 간격을 나타냅니다.

또한 DateFormatter 인스턴스와 함께 Date 값을 사용하여 날짜 및 시간의 localized된 표현을 만들고 Calender 인스턴스와 함께 달력 산술을 수행합니다.
(이 부분에서 localized로 인해 다른 국가에서의 포맷에 맞춰 글로벌한 앱을 개발하게된다면 주의해야함을 느끼게됩니다!)

Date 기본 포맷

여러가지의 초기화 방법이 있지만 기본적인 init() 메서드로 출력되는 값을 확인해보려합니다.

print(Date())
// 2023-05-16 10:22:46 +0000

이제 Foundation Framework에 Embed되어있는 DateFormatter()를 사용하여 출력 포맷을 변경하는 메서드를 확인합니다.

Date 포맷을 여러 형태로 변경하기

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)

Calender 인스턴스를 함께 사용하는 경우

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

🌐 Referece Site

profile
🧑🏼‍💻 iOS developer

0개의 댓글