Я хочу разобрать дату в Java. Но это вызывает ошибку, о которой я рассказал ниже. Я упомянул коды, которые написал. Что мне делать, чтобы предотвратить эту ошибку?
Exception
15.06.2020 17:13:39,885 ERROR tr.com.analysis.DerivedDataCalculator calculateDerivedDatas 139: Field Banking relation period with path: null, formula:
curDateDiff(#//CustomerBasedRelation/CustomerSince, currentDate#), error: Invalid format: "2020-06-15" is malformed at "20-06-15"
java.lang.IllegalArgumentException: Invalid format: "2020-06-15" is malformed at "20-06-15"
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:945)
at tr.com..analysis.DerivedDataCalculator.dateComparision(DerivedDataCalculator.java:207)
at tr.com.analysis.DerivedDataCalculator.calculateDerivedData(DerivedDataCalculator.java:109)
at tr.com.analysis.CptyDerivedDataCalculator.calculateDerivedDatas(CptyDerivedDataCalculator.java:121)
Convert. java
public static final String DATE_TIME_FORMAT_STRING = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_FORMAT_STRING = "dd.MM.yyyy";
DerivedDataCalculator. java
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
private DateTimeFormatter dtf = DateTimeFormat.forPattern(Convert.DATE_FORMAT_STRING);
Использование dtf
for (String expression : expressions) {
String extractedDateStr = null;
if (expression.trim().equalsIgnoreCase("currentDate")) {
extractedDateStr = sdf.format(new Date());
} else {
extractedDateStr = (String) xPath.compile(expression).evaluate(xml, XPathConstants.STRING);
}
if (order == 1) {
date1 = StringUtils.isBlank(extractedDateStr) ? null : dtf.parseDateTime(extractedDateStr).withTimeAtStartOfDay();
} else {
date2 = StringUtils.isBlank(extractedDateStr) ? null : dtf.parseDateTime(extractedDateStr).withTimeAtStartOfDay();
}
order++;
}