2014-01-09 3 views
1

저는 Asus Fonepad 1 세대 (Android 4.1.2)와 Asus Fonepad 2 세대 (Android 4.3)를 보유하고 있습니다. 첫 번째 세대의 fonepad와 "의"17시 9분 25초 2013 즈다 (23) "에SimpleDateFormat이 다른 태블릿에서 다르게 동작합니다.

SimpleDateFormat df = new SimpleDateFormat("MMM dd HH:mm:ss yyyy", /*new Locale("nl", "NL")*/Locale.GERMANY); 
     df.setTimeZone(TimeZone.getTimeZone(/*"Europe/Amsterdam"*/"Europe/Berlin")); 
     String time = df.format(new Date()); 

위의 코드 결과 :

나는 내 응용 프로그램에서 원하는 형식으로 날짜를 구문 분석하려면 다음 코드를 사용 Dez. 23 17:09:25 2013 "2 세대 폰닥에서.

두 번째 세대는 달 다음에 점을 추가합니다.

이렇게하면 서버 측에서 구문 분석이 발생합니다.

왜 SimpleDateFormat가 다른 기기 (Android 버전)에서 다르게 동작합니까? 이것은 걱정입니다.

항상 동일한 형식을 유지할 수있는 방법이 있습니까? 이것에 대한 해결책은 무엇입니까?

감사합니다.

답변

2

SimpleDateFormat (및 일부 다른 프레임 워크 클래스)에서는 콘텐츠 서식을 지정하기 위해 icu4c 라이브러리를 사용합니다. DE의 월 형식이이 라이브러리의 49.2와 50.1 버전 사이에서 변경되었습니다. 아니요, 모든 Android 버전에서 동일한 동작을 기대할 수 없습니다. 소스에

링크 : https://android.googlesource.com/platform/external/icu4c/+/android-4.4.2_r1/data/locales/de.txt

추가 : 솔루션보다 서버로 데이터를 전송하는 경우 숫자 만 사용하는 것입니다 : 12 년 12 월 항상 12이 될 것입니다.

관련 문제