2014-05-15 80 views
2

當我的應用程序加載時,我得到設備的設置以便根據用戶的區域設置顯示日期/時間。如下圖所示,該模式是正確的,但am/pm標記未翻譯成相應的語言(在這種情況下,語言是希臘語,本地是「el_GR」)。有沒有辦法解決這個問題?am/pm使用DateFormat時字符串未本地化/翻譯

"am/pm" should be automatically translated to "πμ/μμ" 


public static final DateFormat USER_DF_TIME = DateFormat.getDateTimeInstance(DateFormat.SHORT, 
     DateFormat.SHORT, Locale.getDefault()); 

enter image description here

回答

0

經過進一步調查,我發現類似的bug的Java 6,"Swedish localization has incorrect am/pm markers" .The錯誤報道早在2007年和2011年

也終於解決了,根據Oracle官方網頁"The set of supported locales varies between different implementations of the Java Platform Standard Edition (Java SE)"

在各種設備上測試我的代碼我發現它在Android 4.1.2和4.4上正常工作,但問題仍然是我的android 4.1.1設備。鑑於old android's Java version is similar to Java 6我推斷這是一個Java語言問題,在較新版本中解決。

1

我沒有看到你的代碼的問題。

private static final Locale GREEK_LOCALE = new Locale("el", "GR"); 
    public static final DateFormat USER_DF_TIME = DateFormat.getDateTimeInstance(DateFormat.SHORT, 
      DateFormat.SHORT,GREEK_LOCALE); 
    String dateString =USER_DF_TIME.format(new java.util.Date()); 
    System.out.println(dateString); 

返回15/5/2014 2:11 μμ正常(我在EST現在)

看來你已經默認語言環境的問題。 按照 https://stackoverflow.com/a/4212671/2182351得到正確的語言環境

+0

非常感謝您的輸入@Mani。它幫助我查看正確的方向以找到問題(請參閱下面的詳細信息)。我可以問你測試了哪個Android版本的代碼嗎? – kouretinho

+0

希望代碼不需要/使用任何Android SDK,那麼在Android中有什麼關係? (注**我不是Android程序員) – Mani

+0

所以,當你調試你的代碼時,你可以看到實際的價值,但在Android面板繪畫時你面臨這個問題? – Mani