2013-05-30 2 views
2

Android 애플리케이션을 만들고 있습니다. GregorianCalendar 변수가 있습니다. 로케일이 미국인 경우이 변수의 날짜를 MM-dd-yyyy로, 로캘이 EU 인 경우 dd-MM-yyyy로 가져 오려고합니다. 각 로켈 문자열을 하드 코드하지 않으려 고합니다. 전화의 로케일에 따라 달라 지도록하고 싶습니다.로캘을 기반으로 한 GregorianCalendar의 날짜 문자열

비슷한 문제가 수십 개를 살펴본 후에도 여전히 문제가 해결되지 않았습니다. 아마도 SimpleDateFormat 또는 GregorianCalendar.get() 또는 getDisplayName()을 사용하여 두 줄 또는 세 줄의 코드를 추측합니다.

도움 주셔서 감사합니다.

+0

알기 만하면 어느 국가에서 로캘 EU를 타겟팅합니까? –

+0

죄송합니다, 그것은 오타였습니다, 그것은 RU로되어있었습니다. –

답변

4

GregorianCalendar gc = ... 
    String str = DateFormat.getDateInstance(DateFormat.SHORT).format(gc.getTime()); 

이 BTW 미국 dd/MM/yy가 30/05/13

+0

완벽한, 감사합니다! –

2

당신이 yourcalender이

DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, yourLocale); 
String formattedDate = df.format(yourcalender.getTime()); 

을 시도해 봤어 예입니다에 대한 날짜 형식 (SHORT)를 기본하려고하는 것은 GregorianCalendar를 변수입니다

+1

잘 작동합니다. 로캘을 지정하지 않으면 필요에 따라 자동으로 시스템 기본값이 사용되므로 응답으로 다른 하나를 선택했습니다. 감사! –

0

더 나은 아직 사용자가 원하는 날짜 형식을 사용하지 않는 이유는 무엇입니까? Locale.getLocale()은 사용자가 선호하는 로케일을 반환하므로 사용자는 지역화 된 모든 값 (날짜, 시간, 통화 등)을 형식화하고 사용자가 선택한 형식을 사용자에게 제공하고 있음을 알 수 있습니다.