ホームページ > Java > &#&チュートリアル > 異なるロケールで日付の解析が失敗するのはなぜですか?

異なるロケールで日付の解析が失敗するのはなぜですか?

Susan Sarandon
リリース: 2024-12-19 13:14:12
オリジナル
789 人が閲覧しました

Why Does My Date Parsing Fail on Different Locales?

ロケールが間違っているため日付を解析できません

日付を解析しようとしています-日時フォーマッタ dtfmt を使用した時刻文字列「2016 年 10 月 24 日 午後 7 時 31 分」デフォルトのロケールでインスタンス化されます。ただし、コードが電話機で実行されると、「java.text.ParseException: Unparseable date: java.text.DateFormat.parse(DateFormat.java:579)」というメッセージを含む ParseException 例外が発生します。

の原因Exception

この例外メッセージの重要な詳細は、システムが日付の解析時にデフォルトのロケールを適用しようとすることですが、これは私たちが予期していたものではありません。デフォルトでは、Android のロケールはシ​​ステムの言語および地域設定と一致するように設定されています。多くのデバイスでは、これは英語以外のロケールとなり、解析エラーが発生します。

解決策

常に日時フォーマッタを作成するときに、SimpleDateFormat か、またはDateTimeFormatter。あなたの場合、次のようにロケールを Locale.ENGLISH に設定できます:


SimpleDateFormat dtfmt=new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);<br>

これ日時パーサーが英語の規則を使用して日時文字列を解析することを指定します。これにより、システムのロケール設定に関係なく、同じ日時文字列が正しく解析されるようになります。

以上が異なるロケールで日付の解析が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート