当我运行以下内容时:
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
我做错了什么?
答案 0 :(得分:4)
JodaTime在解析时使用day字段。 2013年5月的17th
发生在星期五,因此输出。你需要使用:
DateTime date =
format.withLocale(Locale.US).parseDateTime("Wed, 15 May 2013 07:57:29 -0700");