当前位置: 代码网 > it编程>编程语言>Java > SpringBoot接收LocalDateTime参数的方式

SpringBoot接收LocalDateTime参数的方式

2024年08月20日 Java 我要评论
一、通过@requestbody接收方式1:实体类上加上@jsonformat,并通过pattern属性指定时间格式public class time { @jsonformat(pattern

一、通过@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参数内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com