DateFormatter는 날짜, 시간 등과 관련된 객체이다.
에를들어 "2020-05-16 11:30" String 형태를 Date 형태로 변환하여 날짜를 계산한다던지,
"2020-05-16 11:30" String을 "2020년 05월 15일 오전 11시 30분" 형태로 변환한다던지..
1. Date를 원하는 형식의 Format로 변환.
Date()를 선언하면 현재의 Date를 얻을 수 있다. 이 때 얻은 Date는 "2020-08-13 09:14:48 +0000"이런 형태로 전달받게된다.
원하는 형식으로 바꾸고자 한다면 DateFormatter의 dateFormat이라는 함수를 이용하면 된다.
예)
"yyyy-MM-dd HH:mm" -> "2020-03-11 02:52"
yyyy: 년도
MM: 월
dd: 일
HH: 시간(24시간 표기법)
hh: 시간(12시간표기법)
E: 요일 (Fri)
EEEE: 요일(Friday)
EEEEE: 요일(F)
s: 초
S: 밀리초
SS: 밀리초(두자리)
SSS: 밀리초(세자리)
a: AM, PM Locale에 따라 오전, 오후 표기가능(아래 2. 에서 설명)
let timeFormatter = DateFormatter()
timeFormatter.dateFormat = "hh:mm" //"11:30"
이처럼 사용할 수 있다. 원하는, 필요한 형태로 직접 포멧을 정해주면 된다.
2. 위의 설명한 a를 Locale에 따라 사용한다는것.
Locale을 설정하면 AM, PM으로 나타나던게 오전, 오후로 나타나게되며, 시간을 표기하는 방법도 자동으로 바뀐다.
let timeFormatter = DateFormatter()
timeFormatter.dateFormat = "a hh:mm" //PM 03:30
Locale을 따로 설정해주지 않으면 PM형식으로 출력이 된다 하지만,
let timeFormatter = DateFormatter()
timeFormatter.locale = Locale(identifier: "ko_KR")
timeFormatter.dateFormat = "a hh:mm" //오후 03:30
이처럼 Locale을 한국으로 맞춰주면 PM으로 출력되던데 "오후"로 바뀌게 된다.