1

次を実行すると:

final DateTimeFormatter format = DateTimeFormat.forPattern("E, d MMM y HH:mm:ss Z");
final DateTime date = format.withLocale(Locale.US).parseDateTime("Fri, 15 May 2013 07:57:29 -0700");
System.out.println(date);

出力は次のとおりです。

2013-05-17T10:57:29.000-04:00

なぜか2日も先。私はそれが次のようになることを期待します:

2013-05-15T10:57:29.000-04:00

私は何を間違っていますか?

4

1 に答える 1

4

JodaTime は解析時に day フィールドを使用します。2013 年 5 月の17thは金曜日に発生するため、出力されます。以下を使用する必要があります。

DateTime date = 
   format.withLocale(Locale.US).parseDateTime("Wed, 15 May 2013 07:57:29 -0700");
于 2013-05-06T18:12:45.790 に答える