LocalDateTime接收页面date

这篇博客讲述了在使用Mybatis时遇到的LocalDateTime转换问题。由于数据库字段类型为datetime,而实体类中Mybatis自动生成的代码导致了转换异常。博主通过在实体类上添加@DateTimeFormat和@JsonFormat注解,指定日期时间格式,解决了从页面接收到的字符串无法转换为LocalDateTime的问题。错误信息显示是因为缺少正确的格式注解导致String到LocalDateTime的转换失败。

1. 数据库类型

  • 数据库采用datetime类型

2. 实体类类型

  • 因为采用mybatis的自动生成代码,会默认将datetime生成LocalDateTime

3.实体类加上两个注解

  • @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
  • @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)

4. 页面

  • 页面数据:2021-01-27 21:37:50

总结:

  • 当时查阅了好多博客 只加了一个注解,每次运行都会出错:
Field error in object 'article' on field 'issueDate': rejected value [2021-01-27 21:37:50]; codes [typeMismatch.article.issueDate,typeMismatch.issueDate,typeMismatch.java.time.LocalDateTime,typeMismatch]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [article.issueDate,issueDate]; 
arguments []; default message [issueDate]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.time.LocalDateTime' for property 'issueDate';
 nested exception is org.springframework.core.convert.ConversionFailedException: 
Failed to convert from type [java.lang.String] to type [@com.fasterxml.jackson.annotation.JsonFormat java.time.LocalDateTime] for value '2021-01-27 21:37:50'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2021-01-27 21:37:50]]]
  • 意思是说string类型无法转换为LocalDateTime类型
HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 Can not set java.util.Date field com.yyq.entity.Admin.createtime to java.time.LocalDateTime 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 java.lang.IllegalArgumentException: Can not set java.util.Date field com.yyq.entity.Admin.createtime to java.time.LocalDateTime java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) java.base/java.lang.reflect.Field.set(Field.java:799) com.yyq.util.DBUtil.setEntityField(DBUtil.java:118) com.yyq.util.DBUtil.executeQuery(DBUtil.java:79) com.yyq.dao.AdminDao.login(AdminDao.java:56) com.yyq.servlet.AdminServlet.doPost(AdminServlet.java:46) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ):注意 主要问题的全部 stack 信息可以在 server logs 里查看 Apache Tomcat/10.1.42package com.yyq.entity; import lombok.Data; import java.util.Date; /** * @Author 写你的名字 * @Date 2025/9/24 上午11:50 (可以根据需要修改) * @Version 1.0 (版本号) */ @Data public class Admin { private Integer adminId; private String account; private String password; private String tel; private String nickName; private String icon; private Date createtime; private String delflag; private Integer pageCount; }
09-26
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hanlin-hl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值