0

エミュレータ 2.2 と実際のデバイス 2.2.2 で完全に動作するアプリケーションがあります。2.2.2 から 2.3.4 まで、電話で Android のバージョンを更新することにしました。すべてうまくいきましたが、アプリケーションが理由もなく突然動作しなくなりました。さて、Unparseable date次の行で例外が発生します。

String timeOld12Hour = "11:50pm";// for example
Date time = new SimpleDateFormat("hh:mma").parse(timeOld12Hour);

この行にエラーが表示されないので、それは本当に面白いです。Simpledateformatter は、私の日付とまったく同じ形式です。最も奇妙なこと:

  • それは正常に動作しますエミュレータ2.2
  • 正常に動作するエミュレータ2.3.3
  • 今日試したJavaを搭載したすべてのPCで正常に動作します
  • デバイス2.2.2で問題なく動作しました
  • デバイス 2.3.4 では動作しません

どこに問題がありますか?電話の再起動、アプリケーションのアンインストール、アプリケーションの再インストールをいくつか試しましたが、単純に機能しません...

4

1 に答える 1

0

さて、私は問題が何であるかを見つけました。に追加Locale.USするとSimpleDateFormatconstructor、次のようになります。

String timeOld12Hour = "11:50pm";// for example
Date time = new SimpleDateFormat("hh:mma", Locale.US).parse(timeOld12Hour);

すべてうまくいく。これは本当に面白いです。このようなことは聞いたことがありません ;) ロケールについてもっと読む必要があります。また、Androidのアップグレード後に携帯電話のロケールが変更された理由をまだ理解できません...

于 2012-07-14T10:58:01.090 に答える