I know that a DateTimeFormat annotation can be defined on Date properties of a Model class in Spring but is there any way of defining a default dateTimeFormat annotation for all Dates in Spring Model classes?
@DateTimeFormat(pattern = "MM/dd/YYYY")
private Date deliveryDate;
It will save me from annotating each date field. It will also make it easy for me to change the application wide date format later on.
As kuhajeyan mentioned, you can use binder, but not on a controller, rather on controller advice, that will apply it globally:
@ControllerAdvice
public class GlobalDateBinder {
/* Initialize a global InitBinder for dates*/
@InitBinder
public void binder(WebDataBinder binder) {
// here you can use kuhajeyan's code
}
}
in your controller
@InitBinder
protected void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/YYYY");
binder.registerCustomEditor(Date.class, new CustomDateEditor(
dateFormat, false));
}
来源:https://stackoverflow.com/questions/40644368/setting-default-datetimeformat-annotation-in-spring