iOS 15부터 새로운 Formatted API가 등장했다고 한다. 숫자, 날짜, 시간 등과 같은 데이터를 사용자가 보기 편리한 문자열로 변환해 주는 기능으로, 내가 처음 Formatted를 접한건 DateFormatter() 을 사용하여 현재 시간에 대한 정보를 받아 사용했었던 기억이 있었다.
이를 적용하여 다시금 확인해보자
처음 날짜 데이터를 value에 받고, 이를 바로 출력해보는 경우
let value = Date()
print(value)
2022-07-13 07:53:11 +0000
이렇게 나타난다. 만약 우리가 이 값을 formatted를 사용하여 출력해보면 어떠한 결과가 출력될까?
print(value.formatted())
7/13/2022, 4:53 PM
이렇게 우리가 자주 사용하는 형식으로 날짜가 변환되어 나온다.
print(value.formatted(date: .omitted, time: .shortened))
4:53 PM
// 현재 시간 정보를 받아서 문자열로 변환해주는 함수
func dateFormatStyle() {
let value = Date()
print(value)
print(value.formatted())
print(value.formatted(date: .omitted, time: .shortened))
print(value.formatted(date: .complete, time: .shortened))
let locale = Locale(identifier: "ko-KR")
let result = value.formatted(.dateTime.locale(locale).day().month(.twoDigits).year())
print(result)
let result2 = value.formatted(.dateTime.day().month(.twoDigits).year())
print(result2)
}
dateFormatStyle()
2022-07-13 07:53:11 +0000
7/13/2022, 4:53 PM
4:53 PM
Wednesday, July 13, 2022, 4:53 PM
2022. 07. 13.
07/13/2022
날짜 뿐만 아니라, 숫자나 문자열을 받아서 Formatted를 사용할 수도 있다.
// Number, String을 받아서 변환해주는 함수
func numberFormatStyle() {
print(80.formatted(.percent))
print(1345678901.formatted())
print(1984333232.formatted(.currency(code: "krw")))
let result = ["루피", "우솝", "상디", "조로"].formatted()
print(result)
}
numberFormatStyle()
80%
1,345,678,901
₩1,984,333,232
루피, 우솝, 상디, and 조로