0

ここで説明する問題に対する非常によく知られた簡単な解決策であることはわかっています。次の日付形式を解析しようとしていますが、その文字列を解析するために正しい形式を渡しても解析例外が発生します。

try{
  String mDateFormat = "Tue Nov 03 13:46:28 GST 2015";
  SimpleDateFormat mFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
  Date mFormattedDate = mFormat.parse(mDateFormat);

  }catch(ParseException e){
     e.printStackTrace();
}

この文字列に含まれるタイムゾーンは、クラッシュのみをスローしています。私がそれを削除すると、適切に解析できます。そのため、タイムゾーン形式に問題がありますが、このリンクで宣言されている標準を試してみました: SimpleDateFormat By Developer Site

誰かがここで何が悪いのか教えてくれますか?

ありがとう、

4

3 に答える 3

0

これまでに行ったすべての実験から、問題が発生している Android DateFormat パーサーの実装は GST ゾーンを理解していないようです。最も簡単な解決策は、次のように GST を GMT+4 に置き換えて、フォーマッタを明示的に使用することです。

String mDateFormat = "Tue Nov 03 13:46:28 GMT+4 2015";

この日付文字列を使用すると、Android は同等のデスクトップと同じ変換を返すようです。

PS (変換が正確ではないため、フォーマッタから TimeZone を削除しても正しい解決策にはなりません。この日付は Twitter API から取得しているため、使用できる Android でフォーマットする前に、受け入れられない文字列をフィルタリングする必要がある場合があります。

mDateFormat.replace("GST", "GMT+4") 

DateFormat をデータに適用する前に。

于 2015-11-03T20:58:50.730 に答える