后端对数据库查询的时间格式化

news2024/9/23 23:35:38

方式一:

在属性上加入注解,对日期进行格式化,如:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;

方式二:

在WebMvcConfiguration 中扩展Spring MVC的消息转换器,统一对日期类型进行格式化处理:

/**
     * 扩展SpringMVC中的消息转换器,将后端返回给前端的数据进行统一处理
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        log.info("扩展消息转换器……");
        super.extendMessageConverters(converters);
        // 创建一个消息转换器对象
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        // 需要为消息转换器设置一个对象转换器,该对象转换器可以将Java对象序列化为json数据
        converter.setObjectMapper(new JacksonObjectMapper());
        // 将自己的消息转换器加入到容器中,并设置到容器中的前面,意味着优先使用自己定义的消息转换器
        converters.add(0, converter);

    }

在这里插入图片描述
其中的对象转换器需要自己定义,如JacksonObjectMapper:

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
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 java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;

/**
 * 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象
 * 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象]
 * 从Java对象生成JSON的过程称为 [序列化Java对象到JSON]
 */
public class JacksonObjectMapper extends ObjectMapper {

    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
    //public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";
    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";

    public JacksonObjectMapper() {
        super();
        //收到未知属性时不报异常
        this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);

        //反序列化时,属性不存在的兼容处理
        this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

        SimpleModule simpleModule = new SimpleModule()
                .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))
                .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));

        //注册功能模块 例如,可以添加自定义序列化器和反序列化器
        this.registerModule(simpleModule);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1311152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统架构达人亲授:多电商活动从容应对的顶级秘籍!

大家好&#xff0c;我是小米&#xff0c;一个热爱技术分享的小伙伴。最近我参加了一场社招面试&#xff0c;遇到了一道非常有趣的题目&#xff1a;在面对多个电商活动时&#xff0c;从架构上需要做到什么支持呢&#xff1f;今天我就来和大家分享一下我的思考和解答。 引言 随…

工业固体废物智能化综合管控平台

工业固体废物智能化综合管控平台&#xff0c;涵盖产废企业、运输企业、固废处置企 业等不同群体应用&#xff0c;根据不同群体设计不同的业务应用子系统功能&#xff0c;以及各个不 同群体的环保物联网平台子系统功能模块&#xff0c;同时具有移动端的应用APP。 建立产废企业端…

提升创造力:UI设计师不可错过的10个灵感网站

即时设计 即时设计是一个由国内团队开发的在线合作设计网站&#xff0c;帮助专业设计师找到设计灵感。其资源社区拥有丰富的平面设计材料和模板资源&#xff0c;如海报、平面广告、插图、网页设计、排版等&#xff0c;人们忍不住想尝试。同时&#xff0c;它还会不时更新设计资…

【MODBUS】Modbus是什么?

Modbus协议&#xff0c;从字面理解它包括Mod和Bus两部分&#xff0c;首先它是一种bus&#xff0c;即总线协议&#xff0c;和12C、SP|类似&#xff0c;总线就意味着有主机&#xff0c;有从机&#xff0c;这些设备在同一条总线上。 Modbus支持单主机&#xff0c;多个从机&#xf…

HPM5300系列--第一篇 命令行开发调试环境搭建

一、目的 在之前的博客中《HPM6750系列--第二篇 搭建Ubuntu开发环境》、 《HPM6750系列--第三篇 搭建MACOS编译和调试环境》我们介绍了HPM6750evkmini开发环境的搭建过程&#xff0c;由于HPM5300系列共用一套hpm-sdk&#xff0c;故HPM5300的开发调试环境的搭建过程基本和之前的…

最小范数法

最小范数法是一种全局算法&#xff0c;其主要思想是寻求接近于真实相位分布的解包裹相位&#xff0c;使解包裹相位的局部微分尽可能与测量相位微分相一致。这个过程在数学上等价于下列 P 阶方程组 到目前为止&#xff0c;最小范数法中应用最多&#xff0c;最成功的主要是最小二…

渗透测试框架——Cobalt Strike

渗透测试框架——Cobalt Strike Cobalt Strike是一款非常成熟的渗透测试框架。Cobalt Strike在3.0版本之前是基于Metasploit框架工作的&#xff0c;可以使用Metasploit的漏洞库。从3.0版本开始&#xff0c;Cobalt Strike不再使用Metasploit的漏洞库&#xff0c;成为一个独立的…

Gin之GORM 查询语句

前期工作可以看之前的&#xff08;连接数据库&#xff1b;以及确定要操作的库&#xff09; Gin之GORM 操作数据库&#xff08;MySQL&#xff09;-CSDN博客https://blog.csdn.net/m0_72264240/article/details/134948202?spm1001.2014.3001.5502这次我们操作gin库下的另外一个…

使用shell脚本给日志文件瘦身

一、前言 后台系统运行久了&#xff0c;日志文件的体积日渐增多&#xff0c;除了使用常用的日志框架如logback对日志进行按天打印、按大小分割等方式外&#xff0c;还可以使用shell命令来对大日志进行瘦身。 本篇使用sed指令来对文件进行操作&#xff0c;具体操作如下&#xf…

MySQL下载、安装、配置详细教程

目录 1 下载 2 安装 2.1执行安装命令&#xff1a; 2.2 编写配置文件 2.3查看默认mysql的密码&#xff1a; 2.4启动mysql服务 2.5 登录mysql&#xff0c;修改密码 3 系统环境变量配置 3.1 配置 3.2 测试 1 下载 官方网址&#xff1a; https://www.mysql.com/跳转到如…

Axure的动态面板

目录 动态面板 什么是Auxre动态模板 动态模板的步骤 应用场景 实战案例 轮播图 多功能登录界面 主界面左侧菜单栏 动态面板 什么是Auxre动态模板 动态面板是Axure中的一个重要功能&#xff0c;它允许用户创建可交互的页面&#xff0c;并模拟用户与页面的交互。通过添加元素…

如何学习Kubernetes,学习K8S入门教程

学习 Kubernetes&#xff08;K8s&#xff09;确实不容易 你的硬件资源有限时&#xff0c;不过别担心&#xff0c;我帮你理清思路&#xff0c;让你在学习 K8s 的路上更加从容。 1、资源限制下的学习方法 当硬件资源有限时&#xff0c;一个好的选择是使用云服务提供的免费层或者…

(反序列化)[HZNUCTF 2023 preliminary]ppppop

打开是空页面 抓包发现cookies有东西 O:4:"User":1:{s:7:"isAdmin";b:0;} 将零改为1&#xff0c;放包得到题目页面 <?php error_reporting(0); include(utils.php);class A {public $className;public $funcName;public $args;public function __dest…

小红书民宿文案怎么写?建议收藏

随着民宿市场的日益火爆&#xff0c;如何在众多民宿中脱颖而出&#xff0c;吸引更多租客入住&#xff0c;成为摆在每一位民宿业主面前的难题。一篇优质的小红书民宿文案&#xff0c;不仅能吸引潜在租客的关注&#xff0c;还能提高民宿的知名度。本文伯乐网络传媒将从八个方面教…

MATLAB 最小二乘空间直线拟合 (37)

MATLAB 最小二乘空间直线拟合 (37) 一、算法介绍二、算法实现1.代码一、算法介绍 对于空间中的这样一组点:大致呈直线分布,散乱分布在直线左右, 我们可采用最小二乘方法拟合直线,使用下面的代码可以得到图中的结果。(其中图片中的点解释和具体的实现代码如下所示) C++…

Python:pipdeptree 语法介绍

相信大家在按照一些包的时候经常会碰到版本不兼容&#xff0c;但是又不知道版本之间的依赖关系&#xff0c;今天给大家介绍一个工具&#xff1a;pipdeptree pipdeptree 是一个 Python 包&#xff0c;用于查看已安装的 pip 包及其依赖关系。它以树形结构展示包之间的依赖关系&am…

模型评估:压力测试 模拟对手 对齐 智能对抗 CAPTCHA(全自动区分计算机和人类的公共图灵测试)

对齐&#xff0c;智能对抗&#xff1a;魔高一尺&#xff0c;道高一丈。用更高的智能去对抗恶意使用。openAI一半的内容都在讲这个&#xff0c;但没有讲具体的方法。 如果认为对方是一个人就通过了图灵测试&#xff0c;真正的实现了智能。 如果智能达到了这种程度&#xff0c;智…

CDN中的OCSP Stapling是什么?有必要开启吗?

我们在使用CDN时&#xff0c;CDN后台都有一个OCSP Staplin的选项&#xff0c;一般在设置HTTPS里面&#xff0c;如下图位子&#xff1a; 那么这个OCSP Stapling是什么了&#xff0c;我们看看介绍。 OCSP Stapling简介 OCSP&#xff08;Online Certificate Status Protocol&…

DS冲刺整理做题定理(三)图论合集

第三期&#xff0c;总结性地来说一下图论&#xff0c;也是数据结构中最核心最难的一章~ 目录 一.图的基本概念 二.图的存储及其基本操作 三.图的遍历 四.图的应用 在数学中&#xff0c;图是描述于一组对象的结构&#xff0c;其中某些对象对在某种意义上是“相关的”。这些对…

基于ssm网络安全宣传网站设计论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本网络安全宣传网站就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…