Directorio de artículos
-
-
- 1. Conversión de formato de cadena a fecha SpringMVC
-
- 1.1 Consiga la conversión de formato de fecha mediante la anotación '@DateTimeFormat () `. 【 *** Uso recomendado】
- 1.2 Escriba un convertidor personalizado para implementar "Converter" y realice la conversión de tipos mediante métodos de reescritura.
-
- 1.2.1 Escribir un convertidor personalizado para implementar la interfaz `Converter`
- 1.2.2 Configure la fábrica de conversión en springmvc.xml y configure el convertidor a la colección de convertidores
- 1.2.3 Monte el objeto de la fábrica de conversión en el adaptador del procesador (`springmvc.xml`)
- 2. Etiquetas de formato de fecha SpringMVC, fecha a la conversión de formato especificado (usado en jsp)
-
1. Conversión de formato de cadena a fecha SpringMVC
SpringMVC no admite la conversión de cadenas de fecha en la página (similar a 2020-10-14 y 2020/10/14) a la fecha de fondo.
1.1 @DateTimeFormat()
Realice la conversión de formato de fecha a través de anotaciones . 【 *** Uso recomendado】
Conversor de tipo de fecha de anotación (agregue una nota al atributo de Fecha que debe convertirse al formato de fecha):@DateTimeFormat("需要转换的格式")
出生日期<input type="date" name="birthday"/><br/>
public User{
private int id;
private String username;
private double password;
//注解将yyyy-MM-dd的形式转换为Date数据,具体什么格式要看传入参数格式,就是发送请求,查看请求参数的表单数据,看birthday数据的格式
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
}
Verifique el encabezado de la solicitud y descubra que el formato de la fecha de entrada es un
yyyy-MM-dd
formato, según la información de la solicitud.
1.2 Escriba una implementación de convertidor personalizado Converter
y realice la conversión de tipos mediante métodos de reescritura.
1.2.1 Escriba un convertidor personalizado para implementar la Converter
interfaz
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*自定义类型参数转换器: 将字符串日期格式转成Date类型的数据.
Converter<S,T> S: 代表的是源,将要转换的数据类型 T:目标类型,将会转成什么数据类型
*/
//日期格式转换器
public class DateFormatConverter implements Converter<String,Date>{
//转换方法
//String source 将会传递过来的日期的字符串
public Date convert(String source) {
//参数填写为你想要转换的数据格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse(source);
return date;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
1.2.2 Configure la fábrica de conversión en springmvc.xml y configure el convertidor a la colección de convertidores
<bean id="formattingConversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean id="dateFormatConverter" class="com.itheima.converter.DateTimeFormatConverter"></bean>
</set>
</property>
</bean>
1.2.3 Monte el objeto de conversión de fábrica en el adaptador de procesador ( springmvc.xml
)
<!-- 这个service的值要和你创建的转换器的bean的id一致 -->
<mvc:annotation-driven conversion-service="formattingConversionService"/>
2. Etiquetas de formato de fecha SpringMVC, fecha a la conversión de formato especificado (usado en jsp)
2.1 Necesidad de dependencia jstl
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
2.2 Importar etiquetas en la página jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
2.3 Etiqueta de fmt
etiqueta de formato de fecha de llamada (Importe el prefijo que establezca)
<fmt:formatDate value="${User.birthday}" pattern="yyyy-MM-dd-"/>
De esta manera, el formato de datos de fecha que pasa en el backend es el formato aaaa-MM-dd
2.4 Simplemente agregue un @DateTimeFormat(pattern = "yyyy-MM-dd")
comentario sobre la fecha en segundo plano
//这个pattern需要和你传入的数据格式一致
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthDay;