このように送信された日付を解析したい..
2011-03-02T09:06:07.404-07:00
問題は、SimpleDateFormat オブジェクトを使用するときに解析例外が発生することです。タイムゾーンのコロンが原因であると確信しています。
これがSimpleDateFormatのセットアップです。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
そして、開発者ドキュメントからの解析可能な日付文字列の可能な差異のリストを次に示します。ご覧のとおり、タイムゾーンにコロンが含まれているものはありません。
yyyy-MM-dd 1969-12-31
yyyy-MM-dd 1970-01-01
yyyy-MM-dd HH:mm 1969-12-31 16:00
yyyy-MM-dd HH:mm 1970-01-01 00:00
yyyy-MM-dd HH:mmZ 1969-12-31 16:00-0800
yyyy-MM-dd HH:mmZ 1970-01-01 00:00+0000
yyyy-MM-dd HH:mm:ss.SSSZ 1969-12-31 16:00:00.000-0800
yyyy-MM-dd HH:mm:ss.SSSZ 1970-01-01 00:00:00.000+0000
yyyy-MM-dd'T'HH:mm:ss.SSSZ 1969-12-31T16:00:00.000-0800
yyyy-MM-dd'T'HH:mm:ss.SSSZ 1970-01-01T00:00:00.000+0000
私の 2 番目の問題は、タイムゾーンが Z に設定されている日付文字列を取得するときです。これは、0000 に相当する GMT としてタイムゾーンを設定するための標準です。しかし、再び ParseException が発生します。日付文字列の例を次に示します。
2011-01-14T10:50:31.520Z
編集
日付文字列を解析する方法は次のとおりです..
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = null;
try {
Log.d("CCDateUtilss", "Need to remove the colon from the date string in the timeszone");
date = sdf.parse(string);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return date.getTime();
考えられる解決策
問題の発生を文字列で置き換えて、正しく解析できるようにすることはできますか、それとも私が知らないより洗練された解決策がありますか?
前もって感謝します