一、解决问题
最近在使用Thymeleaf模板引擎,但是遇到的问题就是我现在有这样一个标签:输入类型是date,我现在要把JavaBean中的java.sql.Date数据放置到这个额输入框中,但是如你上图所见,这个输入框根本不是单纯的文本框,而且一个日期选择框,好吧….我尝试过th:datetime 但是不行,即使是按照格式化的方式也是不行,就像这样的:
<input type="date" th:value="${
#dates.format(company.companyRegdate, 'yyyy/MM/dd')}"/>
<input type="date" th:value="${company.companyRegdate}"/>
果然还是不行,于是卡了半天的stackoverflow终于出来了:
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date companyRegdate;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date companyUnregdate;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date companyUpdatedate;
这里推荐的方式就是给JavaBean的属性上注解一个时间日期格式化器,对的,这个很容易理解,我们所看到的日期不过是像2018/01/01这样的字符串,或者说像2018年1月1日 这样的字符串,我们和老外对时间的格式表示当然会不一样,但是这个世界上统一的时间就是时间戳,所有的时间表示都是通过时间戳转换而来的。所以我们在存储Date时其实保存的是时间戳的数值,至于具体显示出来时间是怎么样的,要看格式化串,就好比一个模板,所以这个解决方式还是很靠谱的!果断改成@DateTimeFormat,哈哈,还是经验不足呀!