Univocity解析是否支持Java 8日期时间类型转换(LocalDateTime)?

时间:2019-04-23 02:26:16

标签: univocity

@Parsed(field="ABC")
@Format(formats="yyyy-MM-dd HH:mm:ss.SSSSSSSSS")
private LocalDateTime abcDateTime;

Univocity解析是否支持以上内容?使用2.8.1版本

1 个答案:

答案 0 :(得分:1)

Univocity-parsers仍基于Java 6构建。LocalDate不受直接支持,但可以自己提供转换。像这样:

public class LocalDateFormatter implements  Conversion<String, LocalDate> {

    private DateTimeFormatter formatter;

    public LocalDateFormatter(String... args) {
        String pattern = "dd MM yyyy";
        if(args.length > 0){
            pattern = args[0];
        }
        this.formatter = DateTimeFormatter.ofPattern(pattern);
    }

    @Override
    public LocalDate execute(String input) {
        return LocalDate.parse(input, formatter);
    }

    @Override
    public String revert(LocalDate input) {
        return formatter.format(input);
    }
}

然后用@Convert注释字段并提供转换类:“

@Parsed(field = "C")
@Convert(conversionClass = LocalDateFormatter.class, args = "yyyy-MM-dd HH:mm:ss.SSSSSSSSS")
private LocalDate abcDateTime;

下一个版本(3.0.0)即将推出,对此版本以及更多的支持。

希望这会有所帮助。