springboot返回时间戳问题

 更新时间:2024年09月25日 09:31:58   作者:海光之蓝  
在SpringBoot中配置时间格式,可以通过配置类或配置文件实现,若需处理日期,可直接在配置文件中设置,存储时间戳毫秒值时,建立数据库字段精度为3,确保时间精确,这些个人经验供参考

springboot返回时间戳

1.springboot加上如下配置类

package com.kaka.mysql.config;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

import java.io.IOException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;

/**
 * @author kaka
 */
@Configuration
public class LocalDateTimeSerializerConfig {
    /**
     * 序列化LocalDateTime
     * @return
     */
    @Bean
    @Primary
    public ObjectMapper serializingObjectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        JavaTimeModule javaTimeModule = new JavaTimeModule();
        javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
        javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
        objectMapper.registerModule(javaTimeModule);
        return objectMapper;
    }

    /**
     * 序列化实现
     */
    public static class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
        @Override
        public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers)
                throws IOException {
            if (value != null){
                long timestamp = value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
                gen.writeNumber(timestamp);
            }
        }
    }

    /**
     * 反序列化实现
     */
    public static class LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
        @Override
        public LocalDateTime deserialize(JsonParser p, DeserializationContext deserializationContext)
                throws IOException {
            long timestamp = p.getValueAsLong();
            if (timestamp > 0){
                return LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp),ZoneId.systemDefault());
            }else{
                return null;
            }
        }
    }
}

2.如果只有date

则可以在配置文件中配置

spring:
  jackson:
    serialization:
      write-dates-as-timestamps: true

3.数据库中如何保存时间戳的毫秒值?

在建数据库字段时,将其精度设置为3即可

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java jvm垃圾回收详解

    Java jvm垃圾回收详解

    这篇文章主要介绍了JVM的垃圾回收总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10
  • mybatis如何封装List<String>类型属性

    mybatis如何封装List<String>类型属性

    这篇文章主要介绍了mybatis如何封装List<String>类型属性问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Spring Boot Admin集成与自定义监控告警示例详解

    Spring Boot Admin集成与自定义监控告警示例详解

    SpringBootAdmin是一个管理和监控SpringBoot应用程序的工具,可通过集成和配置实现应用监控与告警功能,本文给大家介绍Spring Boot Admin集成与自定义监控告警示例详解,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • springBoot动态加载jar及如何将类注册到IOC

    springBoot动态加载jar及如何将类注册到IOC

    在SpringBoot项目中动态加载jar文件并将其类注册到IOC容器是一种高级应用方式,,这种方法为SpringBoot项目提供了更灵活的扩展能力,使得项目可以在不修改原有代码的基础上增加新的功能模块,感兴趣的朋友一起看看吧
    2024-11-11
  • springboot各种下载文件的方式汇总

    springboot各种下载文件的方式汇总

    下载功能其实就是用户输入指定文件路径信息,然后把文件返回给用户,下面这篇文章主要给大家介绍了关于springboot各种下载文件的方式,需要的朋友可以参考下
    2022-10-10
  • Feign远程调用Multipartfile参数处理

    Feign远程调用Multipartfile参数处理

    这篇文章主要介绍了Feign远程调用Multipartfile参数处理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • JVM---jstack分析Java线程CPU占用,线程死锁的解决

    JVM---jstack分析Java线程CPU占用,线程死锁的解决

    这篇文章主要介绍了JVM---jstack分析Java线程CPU占用,线程死锁的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java SpringAOP技术之注解方式详解

    Java SpringAOP技术之注解方式详解

    这篇文章主要为大家详细介绍了Java SpringAOP技术之注解方式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Java实现快速将HTML表格转换成Excel

    Java实现快速将HTML表格转换成Excel

    这篇文章主要为大家详细介绍一种使用Java的快速将Web中表格转换成Excel的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-05-05
  • IDEA插件之Mybatis Log plugin 破解及安装方法

    IDEA插件之Mybatis Log plugin 破解及安装方法

    这篇文章主要介绍了IDEA插件之Mybatis Log plugin 破解方法及安装方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09

最新评论