안드로이드
(Android) 국가별 맞춤 SimpleDateFormat 보여주기
danune.dev
2022. 6. 23. 11:17
국가별로 익숙한 날짜 표현 형태가 다르기 때문에, 다국어 앱 개발 시 이를 고려해야합니다
Locale에 따라 국가별로 SimpleDateFormat을 각각 설정할 수 도 있겠지만, 모든 국가를 고려하는게 쉽지 않습니다
android.text.format.DateFormat.getBestDateTimePattern 메소드를 사용하면, 이를 자동으로 지원할 수 있습니다
import android.text.format.DateFormat
import java.text.SimpleDateFormat
import java.util.*
fun getDateTimeText(): String {
val pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "yyyy/MM/dd HH:mm:ss")
return SimpleDateFormat(pattern).format(System.currentTimeMillis())
}
fun getDateText(): String {
val pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "yyyy/MM/dd E")
return SimpleDateFormat(pattern).format(System.currentTimeMillis())
}
getDateTimeText는 년,월,일,시,분,초를 현재 Locale 설정에 맞게 표시합니다.
yyyy/MM/dd HH:mm:ss 라는 pattern 인자를 주었으나, 실제 확인해보면 이 포멧은 무시하고 국가별 맞춤 포멧으로 출력됩니다
그럼에도 pattern 인자를 넘겨줘야 하는 이유는, 위 예제처럼 출력해야 하는 내용을 제한하기 위해 필요합니다.
- getDateTimeText는 년,월,일,시분,초를 국가별 포멧으로 출력하고
- getDateText는 년,월,일,요일을 국가별 포멧으로 출력합니다