接收参数Date类型转换《两种方式》

接收参数Date类型转换《两种方式》

PoJo类 User

package com.ljx.exercise.pojo;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 *  用户实体类
 * 		对象在网络间传输是二进制流的形式,所以需要被序列化,
 * 		实体类需实现Serializable接口,对象才能被序列化
 * </p>
 *
 * @Since: Created  in 11:11 2020/12/17
 * @Author: Ljx
 * @Decription:
 */
public class User implements Serializable {
    //加入序列版本号,防止类发生变化,反序列化找不到对应的版本号,反序列化失败!!!
    private static final long serialVersionUID = 101l; //该版本号的目的在于验证序列化的对象和对应类是否版本匹配。 固定字段serialVersionUID
    private Integer id;//用户id
    private String username;//用户名
    private String password;//密码
    private String mobile;//联系方式
    private String records_status;//用户状态
    //@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date create_time;//创建时间
    private Date last_login_time;//最后登录时间
    //private String ceshi;//测试



    public User() {

    }

    public User(String username, String password, String mobile) {
        this.username = username;
        this.password = password;
        this.mobile = mobile;
    }

    public User(Integer id, String username, String password, String mobile, String records_status, Date create_time, Date last_login_time) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.mobile = mobile;
        this.records_status = records_status;
        this.create_time = create_time;
        this.last_login_time = last_login_time;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getRecords_status() {
        return records_status;
    }

    public void setRecords_status(String records_status) {
        this.records_status = records_status;
    }

    public Date getCreate_time() {
        return create_time;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }

    public Date getLast_login_time() {
        return last_login_time;
    }

    public void setLast_login_time(Date last_login_time) {
        this.last_login_time = last_login_time;
    }


    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", mobile='" + mobile + '\'' +
                ", records_status='" + records_status + '\'' +
                ", create_time=" + create_time +
                ", last_login_time=" + last_login_time +
                '}';
    }

    /*    public static void main(String[] args) throws IllegalAccessException {
            User u = new User();
            u.setUsername("tom");
        Field[] declaredFields = u.getClass().getDeclaredFields();
        for (Field field:declaredFields){
            System.out.println(field.getName());
            Object o = field.get(u);
            System.out.println(o);
        }
    }*/
}

一、(使用注解:@DateTimeFormat(pattern="规则")

使用对象形式接收参数时

前台传参数:
在这里插入图片描述
后台接收
在这里插入图片描述
在这里插入图片描述
使用单个字段接收参数
在这里插入图片描述

二、(使用自定义类型转换器)实现Converter
(1)编写自定义转换器,实现Converter接口

一般写法StringToDateConverter,所以泛型<String,Date>

package com.ljx.exercise.web.converter;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * <p>
 *      时间类型转换器
 * </p>
 *
 * @Since: Created  in 11:51 2020/12/30
 * @Author: Ljx
 * @Decription:
 */
public class StringToDateConverter implements Converter<String, Date> {
    private String pattern;//转换规则

    public StringToDateConverter(String pattern){//通过构造器注入格式化规则
        this.pattern = pattern;
    }

    @Override
    public Date convert(String s) {
        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
        Date parseTime = null;
        try {
            parseTime = dateFormat.parse(s);
        } catch (ParseException e) {
            System.out.println(e);
        }
        return parseTime;
    }
}
(2)配置Springmvc-config.xml
 <!--自定义时间转换器 格式化前台字符串时间格式-->
    <bean id="conversionService2" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.ljx.exercise.web.converter.StringToDateConverter">
                	<!--此处参数构造器传入规则-->
                    <constructor-arg type="java.lang.String" value="yyyy-MM-dd"/>
                </bean>
            </set>
        </property>
    </bean>
     <!--注解驱动,以使得访问路径与方法的匹配可以通过注解配置-->
 	<mvc:annotation-driven conversion-service="conversionService2"/>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值