4

私の言語であるチェコ語で月の名前を取得するのに問題があります。

月の名前を名詞として取得したいのですが、常にタイトルが活用されます。名前を取得するために多くの方法を試しましたが、すべての方法で月名の屈折したタイトルが返されます

たとえば、チェコ語で「Říjen」という 10 月の名前を取得したいのですが、常に「října」と表示されます。

    Calendar cal=Calendar.getInstance();
    SimpleDateFormat month_date = new SimpleDateFormat("MMMMMMMMM");
    String month_name = month_date.format(cal.getTime());
    DateFormat formatData = new SimpleDateFormat("d.MMMM yyyy H:mm");
    System.out.println(month_name);
    System.out.println(String.format(Locale.getDefault(),"%tB", cal));
    System.out.println(formatData.format(cal.getTime()));

すべてが悪い形式を返します。月の正しい名前を取得する方法はありますか? ありがとうございました

4

4 に答える 4

5

あなたはすでにこれを解決しているかもしれませんが、ここに解決策があります。少し調べてみましたが、その理由はjava.text.DateFormatSymbolsJava 8 での変更です (互換性ガイドを参照)。

書式設定とスタンドアロン フォームには違いがあります。フォーマット形式: ledna、unora、března など。スタンドアロン形式: leden、unor、březen など。

また、言語の規則によれば、月の名前は、文頭でない限り、単独の場合は小文字で始まります。

このコードにより、目的の結果が得られます。

public static void main(String[] args) {
  Calendar cal = Calendar.getInstance();
  Locale loc = new Locale("cs", "CZ"); 
  System.out.println(cal.getDisplayName(Calendar.MONTH, Calendar.LONG_STANDALONE, loc));
}
于 2014-11-19T14:14:45.930 に答える
3

このサンプル コードの使用

public static void main(String[] args) {
    Calendar cal= Calendar.getInstance();
    Locale loc = new Locale("cs", "CZ"); 
    System.out.println(String.format(loc,"%tB", cal));
}

出力を受け取ります

イージェン

あなたが望むもののように見えます(私は明示的にあなたを定義しLocaleました)。

于 2013-10-19T12:54:23.863 に答える