1. 程式人生 > >SpringMVC對日期型別的轉換

SpringMVC對日期型別的轉換

轉自:https://www.cnblogs.com/lcngu/p/5785805.html

在做web開發的時候,頁面傳入的都是String型別,SpringMVC可以對一些基本的型別進行轉換,但是對於日期類的轉換可能就需要我們配置。

  1、如果查詢類使我們自己寫,那麼在屬性前面加上@DateTimeFormat(pattern = "yyyy-MM-dd")  ,即可將String轉換為Date型別,如下

@DateTimeFormat(pattern = "yyyy-MM-dd")  
private Date createTime;  

  2、如果我們只負責web層的開發,就需要在controller中加入資料繫結:

複製程式碼
1 @InitBinder  
2 public void initBinder(WebDataBinder binder) {  
3 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");  
4 dateFormat.setLenient(false);  
5 binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));   //true:允許輸入空值,false:不能為空值 
複製程式碼

  3、可以在系統中加入一個全域性型別轉換器

  實現轉換器

複製程式碼
 1 public class DateConverter implements Converter<String, Date> {    
 2 @Override    
 3 public Date convert(String source) {    
 4     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");    
 5     dateFormat.setLenient(false);    
 6     try {    
 7         return dateFormat.parse(source);    
8 } catch (ParseException e) { 9 e.printStackTrace(); 10 } 11 return null; 12 }
複製程式碼

  進行配置:

複製程式碼
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">    
        <property name="converters">    
            <list>    
                <bean class="com.doje.XXX.web.DateConverter" />    
            </list>    
        </property>    
</bean> 
複製程式碼
<mvc:annotation-driven conversion-service="conversionService" />  

  4、如果將日期型別轉換為String在頁面上顯示,需要配合一些前端的技巧進行處理。

  5、SpringMVC使用@ResponseBody返回json時,日期格式預設顯示為時間戳。

複製程式碼
 1 @Component("customObjectMapper")  
 2 public class CustomObjectMapper extends ObjectMapper {  
 3   
 4     public CustomObjectMapper() {  
 5         CustomSerializerFactory factory = new CustomSerializerFactory();  
 6         factory.addGenericMapping(Date.class, new JsonSerializer<Date>() {  
 7             @Override  
 8             public void serialize(Date value, JsonGenerator jsonGenerator,  
 9                     SerializerProvider provider) throws IOException, JsonProcessingException {  
10                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
11                 jsonGenerator.writeString(sdf.format(value));  
12             }  
13         });  
14         this.setSerializerFactory(factory);  
15     }  
16 }  
複製程式碼

  配置如下:

複製程式碼
<mvc:annotation-driven>  
    <mvc:message-converters>  
        <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
            <property name="objectMapper" ref="customObjectMapper"></property>  
        </bean>  
    </mvc:message-converters>  
</mvc:annotation-driven>  
複製程式碼

  6、date型別轉換為json字串時,返回的是long time值,如果需要返回指定的日期的型別的get方法上寫上@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") ,即可將json返回的物件為指定的型別。

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")  
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")  
public Date getCreateTime() {  
return this.createTime;  
}  

相關推薦

SpringMVC日期型別轉換

轉自:https://www.cnblogs.com/lcngu/p/5785805.html在做web開發的時候,頁面傳入的都是String型別,SpringMVC可以對一些基本的型別進行轉換,但是對於日期類的轉換可能就需要我們配置。  1、如果查詢類使我們自己寫,那麼在屬

javaEE Springmvc,Converter型別轉換器,請求引數自動進行型別轉換/處理(轉成Date日期型別)

src/springmvc.xml(Springmvc核心配置檔案,配置型別轉換器,為介面卡指定轉換器): <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.spring

SpringMvc時間型別轉換

問題:接觸過web的都知道,前端的form表單傳給後臺的資料型別都是字串,如果空著則為空字串'',而不是null,那麼問    題來了,當後臺的欄位型別是java.lang.Date型別的資料的時候,我們應該如何對他進行轉換型別,SpringMvc能對簡單 型別的資料進行自動

springMVC自定義型別轉換器(date型別轉換

//日期的月份不能寫成小寫mm,因為在日期中還有分鐘mm,這兩者不能相同。 1.建立一個類實現Convert介面,實現convert方法 public date convert(String source){   if(source!=null&&!source.equals(""){

SpringMVC列舉型別輸入輸出及Mybatis列舉型別的儲存查詢

文章目錄 摘要 準備環境 Spring MVC接收列舉型別 Spring MVC輸出列舉型別 MyBatis儲存查詢列舉型別 測試 摘要 本文使用SpringBoot.2.0.1.RELEA

SpringMVC的引數型別轉換

package com.controller; import java.util.Date; import java.util.List; import java.util.Map; import org.springframework.format.ann

Springmvc提交日期型別引數

背景介紹 在springmvc框架中,前臺傳入到後臺的form會經過springmvc自動封裝到pojo類中,後臺接受的時候可以在引數內直接接受這個java類。 傳參 通常情況下,前臺的表單的型別諸如int,string等,都會根據pojo中欄位

用於查詢的日期型別轉換幫助類

一、前言 最近工作比較忙,與此同時自己也在業餘時間開發一個電子商務網站。雖然每天都很累,但感覺過的相當充實。由於時間緊張,最近沒有經常來園子,只是有人留言的時候過來回復下。今天過來刷刷存在感。 二、應用場景舉例 1.按指定日期查詢 (1)使用者在UI上選擇日期; (2)系統計算出今天的起始時間(

js的Date物件,js日期轉換,獲取當前的時間

<script type="text/javascript"> /* 日期物件(Date) */var date = new Date(); //獲取到當前的系統時間document.write("年:"+ date.getFullYear()+"<br/

Java 讀取Excel表格資料日期型別轉換

Java 讀取Excel表格日期型別資料的時候,讀出來的是這樣的  13-十二月-2017,而Excel中輸入的是 2017/12/13 或 2017-12-13 還有Excel中輸入的是整型 5,java 讀取出來的是5.0 這可怎麼整? 解決方法: 日期轉換 impor

spring-boot 介面請求之Date、LocalDate、LocalDateTime日期型別轉換處理

搭建完一個spring-boot的介面服務後,可以在前段通過ajax非同步請求後臺介面資料,一般ajax通過傳遞json物件給後臺介面,後臺接收資料轉化為Bean物件,處理邏輯完成後,將返回的資料轉為json回送給前臺呼叫者; 1.前臺ajax引數格式為: var par

Java專案中日期型別轉換成Cron表示式

今天在做專案的時候遇到一個需求,需要動態的從頁面上傳遞時間,同時開啟一個定時任務,這裡就需要用到把Java時間轉換成Cron表示式,在網上找了一圈,沒有找到太合適的,於是自己動手寫了一個工具類: package com.useeinfo.bftu.utils; import

springMvc自定義型別轉換器(把接收引數String轉成為Date型別

1.  首先建立一個類,實現Converter介面,並實現其未實現方法。import org.springframework.core.convert.converter.Converter; public class CustomGlobalStrToDateConver

springMVC日期格式轉換問題

SpringMVC中不能自動將Spring轉換成Date,所以要在Action實現類中新增日期轉換器,用來轉換日期格式,不然,jsp頁面資料傳輸時會不能和javaBean實體類的屬性相對應。在Action實現類中的構造方法後面新增initBinder方法 /** * spr

springMvc--接受日期型別引數處理

這個問題,也即是springMvc如何進行引數型別的轉換 , 以把client傳過來一個String型別,轉換為日期型別為例回到頂部步驟1.controller/** * 接收日期型別引數 * 注意: * springmv

SpringMVC-8 資料型別轉換、資料格式化與資料校驗

1. 資料繫結流程   SpringMVC通過反射機制對目標處理方法進行解析,將請求訊息繫結到處理方法的入參中。其中,資料繫結的核心部件是DataBinder,執行機制如下:      資料繫結的具體流程說明如下: SpringMVC主框架將S

Struts2 自定義日期型別轉換

xwork-conversion.properties檔案,程式自動載入web.xml,根據web.xml中的配置,自動找到struts.xml檔案,此時如果struts.xml同級目錄存在xwork-conversion.properties檔案,程式就會自動載入該檔案。

struts2之日期型別轉換

一,概述 struts2中預設會對1995-07-08這種日期型別的資料進行型別轉換,轉換為Date型別,但是有時使用者在jsp頁面提交表單時提交的是19950708、1995年07月08日這種型別的

springmvc實體類型別轉換

為什麼前一種能顯示游標而後一種就不會顯示游標呢這是有顯示的ltEditTextandroid:id="@+id/tv_phone"android:layout_width="0dp"android:layout_height="wrap_content"android:lay

SpringMVC解決@ResponseBody返回Json的Date日期型別轉換問題

在做專案的時候,發現後臺把Date型別的屬性以json字串的形式返回,前臺拿不到轉換後的日期格式,始終響應回去的都是long型別時間戳。 查閱資料之後找到解決方法(在springmvc的xml配置檔案下): <mvc:annotation-driven> <mv