Как исправить неправильную ошибку даты, используя java? - PullRequest
0 голосов
/ 16 июня 2020

Я хочу разобрать дату в 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++;
}

1 Ответ

0 голосов
/ 16 июня 2020
public static final String DATE_FORMAT_STRING = "dd.MM.yyyy";

java.lang.IllegalArgumentException: Invalid format: "2020-06-15" is malformed at "20-06-15"

Ну, «2020-06-15» на самом деле не в формате «дд.ММ.гггг», не так ли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...