0
String t = s.replaceAll(".*;\\s+", ""); //Output: Tue Mar 5 08:30:20 2013 +0000
DateFormat parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z",Locale.ENGLISH);
Date time = parser.parse(t);

これは私がjava.util.Dateを使用していたときに使用したものですが、2つのDateオブジェクトを比較すると問題が発生することがあり、Calendarを使用しようとしましたが役に立たず、JodaTimeに出くわしました。その後、DateTIme形式を使用してみて、それがどのように機能するかを確認しようと思いましたが、次のようになります:

java.lang.IllegalArgumentException: 無効な形式: "Tue Mar 5 08:30:20 2013 +0000"

このコードを使用して文字列を DateTime 形式に変換しようとすると:

String t = s.replaceAll(".*;\\s+", ""); //Output: Tue Mar 5 08:30:20 2013 +0000
DateTimeFormatter parser = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss yyyy Z");
DateTime time = DateTime.parse(t, parser);

私は何を間違っていますか?私が使用しているパターンが同じであることがわかる限り、「HH」を「kk」に置き換えてみましたが、同じ結果が得られました。

4

1 に答える 1

0

ロケールを追加すると解決しました:

DateTimeFormatter parser = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss yyyy Z").withLocale(Locale.ENGLISH);
于 2013-10-16T08:02:21.797 に答える