摘要: 項目里經常需要用到日期和String之間的轉換,比如后台的Date對象以Json形式返回給前端頁面的時候,希望轉換為yyyy-MM-dd HH:mm:ss格式的字符串,而前端頁面在提交表單時日期字段希望能自動填充到后台controller方法的Date對象里。
項目里經常需要用到日期和String之間的轉換,比如后台的Date對象以Json形式返回給前端頁面的時候,希望轉換為yyyy-MM-dd HH:mm:ss格式的字符串,而前端頁面在提交表單時日期字段希望能自動填充到后台controller方法的Date對象里。
后台date轉換String,在你date類型屬性get方法上添加@JsonFormat注解(一般不這么做,一般都是時間戳(日期毫秒值)轉到jsp,前台利用標簽轉換成‘yyyy-MM-dd’格式),如下:
- @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="Asia/Shanghai")
- public Date getCreateTime() {
- return createTime;
- }
注意:這個注解是屬於jackson的,springmvc 完美集成了jackson,不過使用這個注解需要導入 jackson依賴的三個包,參考:http://www.cnblogs.com/cainiao-Shun666/p/6872470.html
前端表單里的日期String轉成后台的Date(方法不只這一種,見下一篇轉載的博客):
- /**文章發布日期結束*/
- @DateTimeFormat(pattern="yyyy-MM-dd")
至此,不要以為完事大吉了,你還需要完成以下兩個步驟才可以。
第一需要加入joda的jar包。因為在@DateTimeFormat注解中使用到了joda包中的相關東西,所以缺少這個包也是會報異常的。如果使用的直接導入jar包的話,去下載joda-Jar導入即可,如果使用的是Maven管理項目的jar,那么在配置文件文件中加入依賴:
<dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.3</version></dependency>
第二需要在SpringMVC配置xml文件中(一般是dispatchServlet.xml文件)中加入配置:<mvc:annotation-driven />。這一句配置是一種簡寫,其實是給Spring容器中注入了兩個Bena,分別是:DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter。@DateTimeFormat注解的內部同樣需要使用到前面注入的兩個bean去處理,所以缺少這個配置,Spring容器中沒有對應的bean去處理注解同樣也會報錯。至此,所有的步驟都完成了,可以跑了。

