2012-02-09 79 views
0

当我从字符串中检索日期时,例如“周六2月11日”使用Jodatime格式化类:JodaTime格式化程序混淆

DateTimeFormatter formatter = DateTimeFormat.forPattern("EE dd MMM"); 

我回来的日期(解析之后):“周六,00:00 2月12日”

任何人都可以解释一下吗?我希望DateMidnight可以在11日而不是12日。

这是我使用的代码:

private static String STYLE = "EE dd MMM"; 
private static DateTimeFormatter formatter = DateTimeFormat.forPattern(STYLE); 
public static DateTime getDate(String str) { 
return formatter.parseDateTime(str); 
} 

String dateExample = "Sat 11 Feb"; 
log.info(dateExample); 
DateTime eventDate = getDate(dateExample); 
log.info(eventDate.toString()); 

而这就是登录:

2012-02-09_11:12:40.592 INFO - 周六2月11日

2012- 02-09_11:12:40.664 INFO - 2000-02-12T00:00:00.000Z

+0

您能否显示您用来解析字符串并显示生成的日期对象具有错误值的实际代码? – Jesper 2012-02-09 11:13:15

+0

请提供所有相关的代码。你所给出的只是构造'formatter'的代码。你如何使用格式化程序来解析文本?然后,一旦你有解析结果,你怎么确定它是2月12日,而不是2月11日(toString?Formatter?) – Tim 2012-02-09 11:16:09

回答

2

2000年2月11日是星期五,而不是星期六。

+0

谢谢,完全错过了一年!我认为这将是今年。 – 2012-02-09 11:37:02