joda-time在解析时给错了一天

时间:2013-05-06 18:07:44

标签: java jodatime

当我运行以下内容时:

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

我做错了什么?

1 个答案:

答案 0 :(得分:4)

JodaTime在解析时使用day字段。 2013年5月的17th发生在星期五,因此输出。你需要使用:

DateTime date = 
   format.withLocale(Locale.US).parseDateTime("Wed, 15 May 2013 07:57:29 -0700");