我有员工数据对象,其中有用户从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但是我正在寻找它的默认格式是什么 日期转换。
答案 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)
上调用 staticof(sourceType)
或Java 8样式的 staticfrom(sourceType)
或targetType
方法,如果存在这种方法。- 否则,在
targetType
上调用一个接受单个sourceType
参数的构造函数(如果存在这样的构造函数)。- 否则抛出
ConversionFailedException
。
幸运的是,Date.java
具有不推荐使用的 构造函数public Date(String s)。默认情况下,Spring调用new Date(String s)
将Date转换为String。