7

パターンで「L」文字を使用しようとすることができます( http://developer.android.com/reference/java/text/SimpleDateFormat.html ):

SimpleDateFormat sdf2 = new SimpleDateFormat("d LLLL y 'г'. H:mm:ss z", new Locale("ru", "RU"));

しかし、私はこの例外を受け取ります:

java.lang.IllegalArgumentException: Unknown pattern character - 'L'

なぜそれが起こるのですか?

4

3 に答える 3

8

L 文字パターンは、Android バージョン 2.2 以下ではサポートされていないようです。スラブ言語の日付形式の解決策を探しているときに同じ問題を見つけました (XtopherSD の回答に対する私のコメントを参照してください)。私は条件付きでフォーマットをコーディングすることになりました:

String fmt = Build.VERSION.SDK_INT <= 8 ? "MMMM yyyy" : "LLLL yyyy";
SimpleDateFormat sdfDate = new SimpleDateFormat(fmt);
于 2013-02-05T13:42:20.320 に答える
2

もちろん、API レベル 16 のエミュレートされたデバイスを使用して開発を行っていましたが、すべてが正常に機能していました。API レベル 7 のエミュレートされたデバイスで実行しようとすると、同じエラーが発生しました。

SimpleDateFormat のマニュアル ページhttp://developer.android.com/reference/java/text/SimpleDateFormat.htmlには、「L」がその月に有効であると記載されています。また、「M」が有効であるとも書かれています。

私が変更され :

private static SimpleDateFormat sdf_myDate = new SimpleDateFormat("LLLL d yyyy HHmm", Locale.US);

に :

private static SimpleDateFormat sdf_myDate= new SimpleDateFormat("MMMM d yyyy HHmm", Locale.US);

API 7 と 16 の両方で動作しました。

于 2012-08-15T21:08:24.183 に答える
0

同じ問題がありますが、「A」文字については、SimpleDateFormat APIを確認した後、「A」パターン文字はなく、「a」だけです。また、「a」パターン文字に変更すると正しく機能します。あなたの「L」パターンの文字も見えないので、おそらく問題です。

こちらをご覧ください

これがお役に立てば幸いです。

于 2011-05-10T03:01:44.433 に答える