一、通过@requestbody接收
方式1:实体类上加上 @jsonformat,并通过 pattern 属性指定时间格式
public class time {
@jsonformat(pattern = "yyyy-mm-dd hh:mm:ss")
localdatetime localdatetime;
@jsonformat(pattern = "yyyy-mm-dd")
localdate localdate;
@jsonformat(pattern = "hh:mm:ss")
localtime localtime;
}方式二:配置jackson时间序列化,创建如下配置类即可
import com.fasterxml.jackson.databind.objectmapper;
import com.fasterxml.jackson.datatype.jsr310.javatimemodule;
import com.fasterxml.jackson.datatype.jsr310.deser.localdatedeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.localdatetimedeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.localtimedeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.localdateserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.localdatetimeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.localtimeserializer;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import java.time.localdate;
import java.time.localdatetime;
import java.time.localtime;
import java.time.format.datetimeformatter;
@configuration
public class jacksonconfig {
@bean
public objectmapper objectmapper() {
javatimemodule javatimemodule = new javatimemodule();
// 时间序列化
javatimemodule.addserializer(localdatetime.class,new localdatetimeserializer(datetimeformatter.ofpattern("yyyy-mm-dd hh:mm:ss")));
javatimemodule.addserializer(localdate.class,new localdateserializer(datetimeformatter.ofpattern("yyyy-mm-dd")));
javatimemodule.addserializer(localtime.class,new localtimeserializer(datetimeformatter.ofpattern("hh:mm:ss")));
// 时间反序列化
javatimemodule.adddeserializer(localdatetime.class,new localdatetimedeserializer(datetimeformatter.ofpattern("yyyy-mm-dd hh:mm:ss")));
javatimemodule.adddeserializer(localdate.class,new localdatedeserializer(datetimeformatter.ofpattern("yyyy-mm-dd")));
javatimemodule.adddeserializer(localtime.class,new localtimedeserializer(datetimeformatter.ofpattern("hh:mm:ss")));
objectmapper objectmapper = new objectmapper();
objectmapper.registermodule(javatimemodule);
return objectmapper;
}
}二、通过@requestparam接收
方式1:在参数前面加上 @datetimeformat 注解,通过 pattern 属性指定时间格式
@getmapping("/param/local")
public void testlocaldatetime(@requestparam @datetimeformat(pattern = "yyyy-mm-dd hh:mm:ss") localdatetime localdatetime,
@requestparam @datetimeformat(pattern = "yyyy-mm-dd") localdate localdate,
@requestparam @datetimeformat(pattern = "hh:mm:ss") localtime localtime) {
}方式2:配置时间格式转换器,创建如下配置类即可
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.core.convert.converter.converter;
import java.time.localdate;
import java.time.localdatetime;
import java.time.localtime;
import java.time.format.datetimeformatter;
/**
* 日期格式转换器配置
*/
@configuration
public class dateconverterconfig {
/**
* localdatetime格式转换器
*/
@bean
public converter<string, localdatetime> localdatetimeconverter() {
return new converter<string, localdatetime>() {
@override
public localdatetime convert(string timestr) {
return localdatetime.parse(timestr,datetimeformatter.ofpattern("yyyy-mm-dd hh:mm:ss"));
}
};
}
/**
* localdate格式转换器
*/
@bean
public converter<string, localdate> localdateconverter() {
return new converter<string, localdate>() {
@override
public localdate convert(string timestr) {
return localdate.parse(timestr,datetimeformatter.ofpattern("yyyy-mm-dd"));
}
};
}
/**
* localtime格式转换器
*/
@bean
public converter<string, localtime> localtimeconverter() {
return new converter<string, localtime>() {
@override
public localtime convert(string timestr) {
return localtime.parse(timestr,datetimeformatter.ofpattern("hh:mm:ss"));
}
};
}
}到此这篇关于springboot接收localdatetime参数的文章就介绍到这了,更多相关springboot localdatetime参数内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论