日付を解析しようとしています-日時フォーマッタ dtfmt を使用した時刻文字列「2016 年 10 月 24 日 午後 7 時 31 分」デフォルトのロケールでインスタンス化されます。ただし、コードが電話機で実行されると、「java.text.ParseException: Unparseable date: java.text.DateFormat.parse(DateFormat.java:579)」というメッセージを含む ParseException 例外が発生します。
この例外メッセージの重要な詳細は、システムが日付の解析時にデフォルトのロケールを適用しようとすることですが、これは私たちが予期していたものではありません。デフォルトでは、Android のロケールはシステムの言語および地域設定と一致するように設定されています。多くのデバイスでは、これは英語以外のロケールとなり、解析エラーが発生します。
常に日時フォーマッタを作成するときに、SimpleDateFormat か、またはDateTimeFormatter。あなたの場合、次のようにロケールを Locale.ENGLISH に設定できます:
SimpleDateFormat dtfmt=new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);<br>
これ日時パーサーが英語の規則を使用して日時文字列を解析することを指定します。これにより、システムのロケール設定に関係なく、同じ日時文字列が正しく解析されるようになります。
以上が異なるロケールで日付の解析が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。