我有以下代码:
DateTimeFormatter dtf = DateTimeFormat.forPattern("dd/MM");
LocalDate weekMon = new LocalDate().withWeekOfWeekyear(thisWeek).withDayOfWeek(DateTimeConstants.MONDAY);
System.out.println(weekMon.toString());
LocalDate weekFin = dtf.parseLocalDate(weekMon.toString());
并且输出正确打印日期:2015-02-02。我正在尝试将其转换为欧洲格式并忽略年份为“dd-MM” - > “02-02”但行:
LocalDate weekFin = dtf.parseLocalDate(weekMon.toString());
继续抛出以下异常:
java.lang.IllegalArgumentException: Invalid format: "2015-02-02" is malformed at "5-02-02"
在这种情况下,形成有什么问题?
答案 0 :(得分:1)
您可能需要的是print
,而不是parse
。
换句话说:
String dateStr = dtf.print(weekMon);
注意使用此代码:
LocalDate weekFin = dtf.parseLocalDate(weekMon.toString());
您正尝试使用接受"yyyy-MM-dd"
格式字符串的格式化程序以"dd/MM"
格式解析字符串。因此例外......