Java 8 date/time type `java.time.LocalDateTime` not supported by default:日期序列化问题

这篇具有很好参考价值的文章主要介绍了Java 8 date/time type `java.time.LocalDateTime` not supported by default:日期序列化问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解决办法一:将实体类中的LocalDateTime转为Date类型

解决办法二:

<dependency>
	<groupId>com.fasterxml.jackson.datatype</groupId>
	<artifactId>jackson-datatype-jsr310</artifactId>
	<version>2.13.0</version>
</dependency>

通过注解指定

@TableField("update_time")
    @ApiModelProperty("更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") //此注解用来接收字符串类型的参数封装成LocalDateTime类型
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8", shape = JsonFormat.Shape.STRING) //此注解将date类型数据转成字符串响应出去
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)		// 反序列化
    @JsonSerialize(using = LocalDateTimeSerializer.class)		// 序列化
    private LocalDateTime updateTime;
    @TableField("create_time")
    @ApiModelProperty("添加时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") //此注解用来接收字符串类型的参数封装成LocalDateTime类型
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8", shape = JsonFormat.Shape.STRING) //此注解将date类型数据转成字符串响应出去
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)		// 反序列化
    @JsonSerialize(using = LocalDateTimeSerializer.class)		// 序列化
    private LocalDateTime createTime;

配置全局

@Configuration
public class MvcConfig implements WebMvcConfigurer {
    @Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
        objectMapper.registerModule(new JavaTimeModule());
        messageConverter.setObjectMapper(objectMapper);
        converters.add(0, messageConverter);
    }
}

解决办法三:

用阿里的FastJson替换ObjectMapper文章来源地址https://www.toymoban.com/news/detail-662018.html

到了这里,关于Java 8 date/time type `java.time.LocalDateTime` not supported by default:日期序列化问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【报错】Cannot deserialize value of type `java.time.LocalDateTime` from String

    接口测试中报错 这个错误是因为无法将字符串\\\"2023-10-10 17:23:35\\\"反序列化为java.time.LocalDateTime类型的对象。在Java中,LocalDateTime类不支持直接从字符串进行反序列化的操作。 在实体类的LocalDateTime 类型的字段上加@JsonFormat注解即可

    2024年02月03日
    浏览(61)
  • 已解决JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String

    已解决JSON parse error: Cannot deserialize value of type java.time.LocalDateTime from String 下滑查看解决方法 JSON parse error: Cannot deserialize value of type java.time.LocalDateTime from String 这个问题通常出现在将一个字符串转换为LocalDateTime对象时。 下滑查看解决方法 解决这个问题的方法取决于你使用的

    2024年02月08日
    浏览(58)
  • Java中LocalDateTime/DateTime与Date相互转化(java中时间转化)

    LocalDateTime是JDK1.8出现的新特性,解决线程不安全的问题,但是当前很多的相关插件或者使用较低版本的时候,会依旧使用Date的情况,这个时候就需要两者之间的相互转化 新增的API严格区分了时刻、本地日期、本地时间,并且,对日期和时间进行运算更加方便。 其次,新AP

    2024年02月15日
    浏览(43)
  • Java中Date、Calendar、LocalDateTime时间戳转换日期

    时间戳是指格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒 ( 北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒 ) 起至现在的总毫秒数,本质是一个long 类型的整数,表示日期对象。 以下时Java中Date、Calendar、LocalDateTime与时间戳转换日期 Date类时间戳转换日期: Calendar类时间戳转换日

    2024年02月11日
    浏览(42)
  • java~Date和LocalDateTime及Instant的使用场景

    在 Java 中, LocalDateTime 、 Date 和 Instant 分别代表了不同的日期时间类型,它们之间有一些区别和适用场景。 Date : java.util.Date 是 Java 早期的日期时间类,它包含了日期和时间信息,但是在设计上存在一些问题,因此并不推荐在新的代码中使用。 Date 类存在线程安全性问题,同

    2024年02月21日
    浏览(48)
  • 解决:Cannot deserialize value of type `java.util.Date` from String “xxx“: not a valid representation..

            在做数据更新操作的时候,后台数据为Date时,前端把String类型数据传到后台时,Date类型无法识别这个String数据,所以会报错。  主要问题:         在实体类中的Data类型数据加上 @JsonFormat 注解,先来看一下这个注解的属性,我们常用的有 timezone{时区} 和 p

    2024年02月16日
    浏览(54)
  • Java String、Date、Calendar、LocalDate和LocalDateTime互转

    目录 一、String和Date互转 1.1 String时间转为Date 1.2 Date转为String 二、String和Calendar互转 2.1 String时间转为Calendar 2.2 Calendar转为String 三、String和LocalDate(LocalDateTime)互转 3.1 String时间转为LocalDate(LocalDateTime) 3.2 LocalDate(LocalDateTime)转为String 四、Date和Calendar互转 4.1 Date转为Calen

    2024年02月06日
    浏览(46)
  • java中LocalDateTime、Calendar、Date三种时间类型进行加减

    介绍了三种日期类型以及他们的日期加减 什么是LocalDateTime LocalDateTime是Java 8中的一个类,表示不带时区的日期和时间。它是java.time包中的一个类,用于处理日期和时间的操作。 LocalDateTime包含日期和时间的信息,不包含时区信息。它提供了各种方法来获取和操作日期和时间的

    2024年02月04日
    浏览(44)
  • java关于后端怎么去接收Date、LocalDateTime类型的参数

    Date类型后端入参的格式默认为2019/01/18 11:11:11 Get方式传参 是 没有时区的影响的 @JsonFormat的作用: 返回给前端的时间是经过@JsonFormat格式化的时间。 @DateTimeFormat的作用: 前端需要按照@DateTimeForma的格式进行传参 示例: Date 类型直接作为参数的情况 Date类型属性的实体类作为参

    2024年02月05日
    浏览(43)
  • Java - You aren‘t using a compiler supported by lombok, so lombok will not work and has been disable

    java: You aren‘t using a compiler supported by lombok, so lombok will not work and has been disabled 一般出现这种情况是由于 Lombok 版本不兼容(低版本)或者 IDEA 启动时需要配置 JVM 参数跳过即可 方法一 将 Lombok 版本提升至 1.18.24 后问题就可以解决 方法二 在 Compiler 中增加如下参数配置即可(推

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包