spring mvc自动日期转换的默认日期格式?

时间:2014-12-22 07:39:31

标签: java spring-mvc

我有员工数据对象,其中有用户从UI输入的日期字段DOB。我的问题是是什么 默认日期格式spring mvc期望它的自动日期转换有效或者取决于区域设置信息 来自浏览器?

public class EmployeeData {
    private Date dob;
    ... getters and setters
}

我的意思是春季自动日期转换适用于任何这些日期格式"MM/dd/yyyy" or "dd/MM/yyyy" or "yyyyy/MM/dd"

我知道我可以使用CustomDateEditor但是我正在寻找它的默认格式是什么 日期转换。

2 个答案:

答案 0 :(得分:1)

这是我在春季MVC中观察到的确认Spring MVC: What are the allowable default date formats?的内容。 Spring默认解析日期

    long autoConvertedDate= new Date().parse(strDate);
    System.out.println("date is " + new Date(autoConvertedDate));

它需要MM/dd/yyyy格式的strDate。

如果输入日期为"12/11/14",则结果为11 Dec 2014 如果输入日期为"16/11/14",则结果为11 Apr 2015

请注意,即使输入数据,第二个模式也在"16/11/14",Date对象正在考虑中 它以MM / dd / yyyy格式将年份部分转移到2015年becoz输入月份是16

答案 1 :(得分:0)

没有默认的日期转换器。 Spring使用ObjectToObjectConverter将String转换为Date。

  

转换算法

     
      
  • 如果返回类型等于to[targetType.simpleName](),则在源对象上调用非静态targetType方法(如果存在)。例如,org.example.Bar Foo#toBar()是遵循此约定的方法。
  •   
  • 否则,请在valueOf(sourceType)上调用 static of(sourceType)或Java 8样式的 static from(sourceType)targetType方法,如果存在这种方法。
  •   
  • 否则,在targetType上调用一个接受单个sourceType参数的构造函数(如果存在这样的构造函数)。
  •   
  • 否则抛出ConversionFailedException
  •   

幸运的是,Date.java具有不推荐使用的 构造函数public Date(String s)。默认情况下,Spring调用new Date(String s)将Date转换为String。