0

アプリで現地時間をフォーマットするとき、.NET で以前に次のバグで問題が発生しました これは .NET 4.0 で修正されています。

現地時間の Android 形式をテストすると、ノルウェー語のロケールでも同じエラーが発生します。ノルウェーではピリオドを使用しているのに「21:00」と表示されるため、「21:00」になるはずです。

DateFormat tf = android.text.format.DateFormat.getTimeFormat(m_activity);

テストすると、これは Android 4.2 と 4.0.4 の両方で発生します。これもバグですか?

また、Android では英国の AM/PM も使用されていますが、これも少し「標準的」ではありませんか? en_GB ロケールで時刻をフォーマットすると、Android と標準 Java で異なる結果が得られる

4

2 に答える 2

0

Googleエンジニアからの回答: http ://code.google.com/p/android/issues/detail?id = 42104

「いつものように、私のアドバイスはandroid.text.format.DateFormatを使用しないことです。java.text.DateFormatを使用する場合は、CLDRの形式を使用します。

それに関する問題は、それがユーザーの12/24時間の好みを尊重しないということです。私はその情報をlibcoreに落とし込み、正しいことを実行できるように取り組んでいます。(その後、フレームワーク/ベースで複製されたAPIをlibcore実装の使用に切り替えることができます。)」

于 2012-12-30T21:33:25.410 に答える
0

http://docs.oracle.com/javase/1.4.2/docs/api/java/text/NumberFormat.htmlで自分でフォーマットしてみませんか?

明らかに、Google から明確な回答が得られるまで、それが機能なのかバグなのかはわかりません。また、確認されたとしても、いつ修正されるかは神のみぞ知ることです。2009 年からの保留中のバグがまだあります。

NumberFormat を使用して「一時的な」回避策を作成し、特定の DateFormat 出力を解析し、そのように「標準化」することをお勧めします。Googleがこれを修正するのを待っているビート:)

于 2012-12-29T23:06:48.530 に答える