web-dev-qa-db-ja.com

Java toString()からの日付の解析

_Java.util.Date_のインスタンスで呼び出されたtoString()の結果を含むStringがあります。この値を解析してDateオブジェクトに戻すにはどうすればよいですか?

Java docsは、toString()がこのDateオブジェクトを次の形式のStringに変換すると言います:

_ dow mon dd hh:mm:ss zzz yyyy
_

もちろん、_"dow"_や_"mon"_などのフォーマットタグはありません。

誰かがこの問題を助けてくれませんか?残念ながら、toString()の呼び出しは、私の制御の及ばないコードに含まれていることに注意してください。

21
prepetti

文字列を生成するコードを制御できない場合:

toString()形式を解析するには、SimpleDateFormatロケールを英語に設定し、次の形式を使用する必要があります:"EEE MMM dd HH:mm:ss Z yyyy"

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", new Locale("us"));`
34
Nuno Gonçalves

私はテストしませんでしたが、このようなものはおそらくうまくいくでしょう:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM HH:mm:ss z yyyy");
Date date = sdf.parse(dateStr);

そうでない場合は、ドキュメントを使用して修正してください: http://docs.Oracle.com/javase/6/docs/api/Java/util/Date.html#toString () http://docs.Oracle.com/javase/6/docs/api/Java/text/SimpleDateFormat.html