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年17th5 月发生在星期五,因此输出。你需要使用:

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