【SSM - SpringMVC篇】日期格式轉換 把英文日期轉化為數位日期

2020-10-16 12:00:45

日期格式轉換

為啥要進行日期格式轉換?
springMVC預設不支援頁面上的日期字串到後臺的Date的轉換
有兩種方式
第一種使用註解 第二種編寫 轉換類,設定到springMVC(瞭解)

第一種使用註解(簡單,建議使用)

在Person類中的Date型別引數上使用註解


public class Person {
    private int id;
    private String username;
    private String password;
    private String city;
    private Birthday birthday;
    @DateTimeFormat(pattern ="yyyy-MM-dd")
    private Date birthday2;

JSP

 出生日期<input type="date" name="birthday2"/><br/>

日期的格式要看頁面傳入的資料為準,以此來修改格式
在這裡插入圖片描述

編寫 轉換類,設定到springMVC(瞭解)

編寫自定義轉換器實現Converter重寫方法


//1:將頁面上提交的日期字串,轉成Date物件
public class DateTimeFormatConvert implements Converter<String, Date> {
    public Date convert(String s) {
        System.out.println("convert "+s);
        //2:轉換器
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            date = sdf.parse(s);//2020-10-14
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}

springmvc.xml中設定轉換工廠,將我們的轉換器設定到converters集合中

 <mvc:annotation-driven conversion-service="formattingConversionService"/>
 
 <bean id="formattingConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean id="dateTimeFormatConverter" class="com.zx.util.DateTimeFormatConvert"></bean>
            </set>
        </property>
    </bean>

把英文日期轉化為數位日期

add.jsp

把英文日期轉化為數位日期


     <!--匯入標籤-->
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!--呼叫日期格式化標籤-->
<fmt:formatDate value="${item.birthday2}" pattern="yyyy年MM月dd日"/>