Java 在PropertyEditorSupport和@Initbinder中生成日期为的getAsText()

Java 在PropertyEditorSupport和@Initbinder中生成日期为的getAsText(),java,date,simpledateformat,propertyeditor,spring-mvc-initbinders,Java,Date,Simpledateformat,Propertyeditor,Spring Mvc Initbinders,我需要将模式为“yyyy-MM-dd”的日期转换为字符串格式“dd.MM.yyyy”。现在我有了这个。方法getAsText()在setAsText工作时不工作。我做错了什么 DateEditor.java @Component public class DateEditor extends PropertyEditorSupport { @Override public void setAsText(String value) { try {

我需要将模式为“yyyy-MM-dd”的日期转换为字符串格式“dd.MM.yyyy”。现在我有了这个。方法getAsText()在setAsText工作时不工作。我做错了什么

DateEditor.java

@Component
public class DateEditor extends PropertyEditorSupport {

    @Override
    public void setAsText(String value) {
        try {
            setValue(new SimpleDateFormat("yyyy-MM-dd").parse(value));
        } catch (Exception ex) {
            setValue(null);
        }
    }

     @Override
    public String getAsText() {

        String sdf = "";

        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

            dateFormat.setLenient(true);//-

            Date date = dateFormat.parse((String) getValue());
            sdf = new SimpleDateFormat("dd.MM.yyyy").format(date);

            System.out.println(sdf);
        } catch (ParseException p) {}

        return sdf;
    }

}
Initbinder

@InitBinder
    public void initBinder(WebDataBinder dataBinder) {
         dataBinder.registerCustomEditor(Date.class,new DateEditor());
}

定义它如何“不工作”。我可以想出几种方法来打破这一点,我不想把它们全部列出。它只是打印第一个日期格式,而不是转换。p、 printStackTrace();不显示任何内容我建议您不要使用
SimpleDateFormat
Date
。这些类设计得很糟糕,而且早已过时,其中前者尤其令人讨厌。相反,使用来自的
LocalDate
DateTimeFormatter
。可能不执行此方法,但原因是什么?您是否可以清楚地说明预期结果、观察到的结果以及它们之间的区别?我认为这将大大有助于回答这个问题。定义它如何“不起作用”。我可以想出几种方法来打破这一点,我不想把它们全部列出。它只是打印第一个日期格式,而不是转换。p、 printStackTrace();不显示任何内容我建议您不要使用
SimpleDateFormat
Date
。这些类设计得很糟糕,而且早已过时,其中前者尤其令人讨厌。相反,使用来自的
LocalDate
DateTimeFormatter
。可能不执行此方法,但原因是什么?您是否可以清楚地说明预期结果、观察到的结果以及它们之间的区别?我认为这将大大有助于回答这个问题。