Swift(15) NumberFormatter, DateFormatter

개발렬·2023년 7월 19일

Swift

목록 보기
15/23
post-thumbnail

NumberFormatter

NumberFormatter는 숫자를 원하는 형식으로 표시하는 데 사용됩니다.

let number = 0.75

let formatter: NumberFormatter  = {
    let formatter = NumberFormatter()
    formatter.numberStyle = .percent

    return formatter
}()

formatter.string(from: NSNumber(value: number)) // 75%

DateFormatter

let date = Date()

let formatter: DateFormatter  = {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    
    return formatter
}()

formatter.string(from: date) // "2023-07-19"

위 코드에서 DateFormatter의 dateFormat 속성을 "yyyy-MM-dd"로 설정하면 날짜가 "년-월-일" 형식으로 표시됩니다.
원하는 dateFormate 속성을 아래 사이트에서 확인할 수 있습니다.

https://nsdateformatter.com/

Locale 설정

let formatter: DateFormatter  = {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    formatter.locale = Locale(identifier: "en_US_POSIX") //로캘(Locale)을 "en_US_POSIX"로 설정
    
    return formatter
}()

각 지역 또는 언어에는 고유한 로캘이 있으며, 로캘은 특정 언어, 국가 및 문화적인 관행에 따라 텍스트, 날짜, 시간 등을 형식화하는 데 사용됩니다.
"en_US_POSIX"는 영어(미국)에 대한 로캘 식별자입니다. 이 설정은 특정 로캘 설정을 명시적으로 지정하여 의도적으로 표준 로캘 설정을 사용하는 경우에 유용합니다. 주로 시스템의 기본 로캘이나 사용자의 지역 설정에 의해 영향을 받지 않고 고정된 형식을 사용해야 하는 경우에 사용됩니다.

정적인 형식 템플릿

formatter.dateFormat = "yyyy-MM-dd"

이 설정은 로케일에 관계없이 항상 동일한 형식으로 날짜를 표시합니다.

로케일에 맞는 동적인 형식 템플릿

let dateFormatter = DateFormatter()
dateFormatter.setLocalizedDateFormatFromTemplate("yyyyMMMMd")
  • "dd MMMM yyyy":

로케일에 따라 일, 월(영어 풀네임), 연도 순으로 표현됩니다.
예를 들어, "19 July 2023" (영어 - 미국), "19 Juli 2023" (독일어 - 독일)과 같이 출력될 수 있습니다.

  • "yyyy년 M월 d일":

로케일에 따라 연도, 월, 일 순으로 표현되며, 한국어에서 일반적으로 사용되는 형식입니다.
예를 들어, "2023년 7월 19일"과 같이 출력될 수 있습니다.

profile
Flutter, iOS...나는 모바일 앱 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

아주 유익한 내용이네요!

답글 달기