OpenCSV неверный формат даты - PullRequest
0 голосов
/ 03 июля 2018

Я использую CsvToBean класс openCSV. У боба есть дата поля.

@CsvDate(value = "yyyy-MM-dd")
@CsvBindByPosition(position = 8)
private Date startDate;

Я выполняю отрицательное тестирование, передавая значение " 2018-25-02 ", но оно получает конвертируется в чт 02 января 00:00:00 по Гринвичу 2020 без каких-либо проблем.

1 Ответ

0 голосов
/ 24 января 2019

Вы можете создать свой собственный конвертер для java 8 LocalDate, например,

public class LocalDateConverter extends AbstractBeanField {
    @Override
    protected Object convert(String s) throws CsvDataTypeMismatchException, CsvConstraintViolationException {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate parse = LocalDate.parse(s, formatter);
        return parse;
    }
}

Тогда вы можете просто комментировать ваш класс, как:

@CsvCustomBindByPosition(position = 8, converter = LocalDateConverter.class)
private LocalDate startDate;
...