티스토리 뷰
국가별로 익숙한 날짜 표현 형태가 다르기 때문에, 다국어 앱 개발 시 이를 고려해야합니다
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는 년,월,일,요일을 국가별 포멧으로 출력합니다
'안드로이드' 카테고리의 다른 글
(Android) Room schema 변경 (version 변경) (0) | 2022.06.24 |
---|---|
(Android) file(uri) 존재 여부 확인 (0) | 2022.06.23 |
(Android) 동영상 재생 Intent (0) | 2022.06.22 |
(Android) 동영상 촬영 및 DCIM폴더에 저장하기 (0) | 2022.06.22 |
(Android) 전화걸기 Intent 사용 (0) | 2022.06.14 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday