개발자 블로그
안드로이드 포맷 적용하여 날짜 가져오기(다국어지원) 본문
안드로이드에서 날짜를 출력하는 경우 "yyyy", "MM", "dd" 같은 포맷 지정문자를 이용해서 원하는 형식으로 날짜를 가져올 수 있다. (날짜 포맷 지정 문자에 대한 자세한 내용은 여기를 참조)
사용자에게 보여지지 않고 내부적으로 사용하거나 특정 국가 한정으로 개발하는 앱이라면 위 형식으로도 충분하지만 "다국어지원"을 염두해 둔다면 결코 좋은 방법이 아니다. 한국에서는 "년-월-일" 순서의 날짜표기를 사용하지만, 미국의 경우에는 "월-일-년"으로 출력하는 순서가 서로 다르다. 로케일로 구분해서 포맷을 달리 적용해서 해결 할 수도 있겠지만 아래 코드를 이용하면 매우 깔끔하게 해결이 가능하다.
Calendar cal = Calendar.getInstance(); // the value to be formatted DateFormat formatter1 = DateFormat.getDateInstance(DateFormat.DEFAULT); DateFormat formatter2 = DateFormat.getDateInstance(DateFormat.SHORT); DateFormat formatter3 = DateFormat.getDateInstance(DateFormat.MEDIUM); DateFormat formatter4 = DateFormat.getDateInstance(DateFormat.LONG); DateFormat formatter5 = DateFormat.getDateInstance(DateFormat.FULL); formatter1.setTimeZone(cal.getTimeZone()); formatter2.setTimeZone(cal.getTimeZone()); formatter3.setTimeZone(cal.getTimeZone()); formatter4.setTimeZone(cal.getTimeZone()); formatter5.setTimeZone(cal.getTimeZone()); String formatted1 = formatter1.format(cal.getTime()); String formatted2 = formatter2.format(cal.getTime()); String formatted3 = formatter3.format(cal.getTime()); String formatted4 = formatter4.format(cal.getTime()); String formatted5 = formatter5.format(cal.getTime()); String tot_str = formatted1 + "\n" + formatted2 + "\n" + formatted3 + "\n" + formatted4 + "\n" + formatted5; Toast.makeText(this, tot_str, Toast.LENGTH_LONG).show();
다양한 형식으로 보여주고자 코드가 좀 길어졌는데 실제로는 매우 짧은 코드다.
언어 설정을 '한국어'로 해놓은 상태로 출력한 결과다.
언어 설정을 영어(미국)으로 변경한 뒤 출력한 결과다.
소스코드의 변경 없이도 해당 국가에 따라 적합한 형식으로 날짜를 보여준다.
※ 참고자료 : http://stackoverflow.com/questions/10771279/formatting-a-calendar-date
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 스튜디오 UI 한글깨짐 현상 해결방법 (2) | 2016.09.17 |
---|---|
안드로이드 버전별 이름 및 API버전 (0) | 2016.08.21 |
안드로이드 스마트폰 이름 구하기 (1) | 2016.05.10 |
안드로이드 USB 디버깅 연결 설정방법 (7) | 2016.04.25 |
안드로이드 요일명 구하기 (0) | 2016.04.20 |
Comments