格式化日期注解@JsonFormat的使用和TimeZone时区问题
@JsonFormat的使用
目的
为了便于date类型字段的序列化和反序列化,需要在数据结构的Date、Timestamp、DateTime类型的字段上用JsonFormat注解进行注解
使用
@JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。一般用于一个字段命名上面,示例:
/*** 生日*/@JsonFormat(pattern = Dates.Pattern.DATE)private Date birthday;
这里Dates.Pattern.DATE是枚举类型取值,对应值可以自定义,例如:
/*** yyyy-MM-dd*/
String DATE = "yyyy-MM-dd";
要想使用此注解,需要引入依赖:
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.2</version>
</dependency>
当然,我们在spring boot框架开发中:
我们的spring-boot-starter-web启动器已经整合了jackson-databind依赖,
不需要再重复引入jackson-databind依赖
引入fasterxml maven jar包之后,就可以在实体类属性上面使用@JsonFormat注解了
要注意的是,它只会在类似@ResponseBody返回json数据的时候,才会返回格式化的yyyy-MM-dd HH:mm:ss时间,你直接使用System.out.println()输出的话,仍然是类似“Fri Dec 01 21:05:20 CST 2017”这样的时间样式。
时区概述
GMT:Greenwich Mean Time 格林尼治标准时间。这是以英国格林尼治天文台观测结果得出的时间,这是英国格林尼治当地时间,这个地方的当地时间过去被当成世界标准的时间。
UT:Universal Time 世界时。根据原子钟计算出来的时间。
UTC:Coordinated Universal Time 协调世界时。因为地球自转越来越慢,每年都会比前一年多出零点几秒,每隔几年协调世界时组织都会给世界时+1秒,让基于原子钟的世界时和基于天文学(人类感知)的格林尼治标准时间相差不至于太大。并将得到的时间称为UTC,这是现在使用的世界标准时间。
协调世界时不与任何地区位置相关,也不代表此刻某地的时间,所以在说明某地时间时要加上时区
也就是说GMT并不等于UTC,而是等于UTC+0,只是格林尼治刚好在0时区上。
GMT = UTC+0
中国的默认时区
中国的默认时区是东八区
TimeZone设置时区
timezone: 默认是GMT,中国需要GMT+8
格林尼治时间(GMT)、世界协调时间(UTC)和中国时间的关系
中国时间(Asia/Shanghai) = 格林尼治时间(GMT) + 8
格林尼治时间(GMT) = 世界协调时间(UTC) + 0
时区问题
我们在格式化的时候要指定时区(timezone
),以中国时区为例,代码如下:
/**
* 生日
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date birthday;
实例
项目中我们的日期非常的难看,而且存在时区问题
(因为我们选择的日期是2月13号,显示的却是2月12号)
我们使用@JsonFormat后,就可以格式化我们的日期,并且解决失去问题
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date birthday; // 生日
结果
相关文章:

格式化日期注解@JsonFormat的使用和TimeZone时区问题
JsonFormat的使用 目的 为了便于date类型字段的序列化和反序列化,需要在数据结构的Date、Timestamp、DateTime类型的字段上用JsonFormat注解进行注解 使用 JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当…...

ReactNative实现文本渐变
我们直接上图,可以看到上面文本的效果,使用SVG实现 1.首先还是要引入react-native-svg库 2.使用该库下面的LinearGradient和Text 好,话不多说,我们看具体代码 <Svg width={422} height={30} viewBox={0 0 422 30}><Defs><LinearGradientid="Gradien…...

深度学习手写字符识别:训练模型
说明 本篇博客主要是跟着B站中国计量大学杨老师的视频实战深度学习手写字符识别。 第一个深度学习实例手写字符识别 深度学习环境配置 可以参考下篇博客,网上也有很多教程,很容易搭建好深度学习的环境。 Windows11搭建GPU版本PyTorch环境详细过程 数…...

Day 1. 学习linux高级编程之Shell命令和IO
1.C语言基础 现阶段学习安排 2.IO编程 多任务编程(进程、线程) 网络编程 数据库编程 3.数据结构 linux软件编程 1.linux: 操作系统:linux其实是操作系统的内核 系统调用:linux内核的函数接口 操作流程ÿ…...

STM32--SPI通信协议(1)SPI基础知识总结
前言 I2C (Inter-Integrated Circuit)和SPI (Serial Peripheral Interface)是两种常见的串行通信协议,用于连接集成电路芯片之间的通信,选择I2C或SPI取决于具体的应用需求。如果需要较高的传输速度和简单的接口,可以选择SPI。如果需要连接多…...
Debezium系列之:MariaDB10.5以上版本赋予数据库账号读取binlog权限的变化
Debezium系列之:MariaDB10.5以上版本赋予数据库账号读取binlog权限的变化 一、背景二、BINLOG MONITOR权限三、BINLOG MONITOR和REPLICA MONITOR的区别四、MariaDB版本升级的影响五、总结一、背景 数据接入会检测账号是否具有REPLICATION SLAVE、REPLICATION CLIENT的权限Mari…...

迅为STM32MP157开发板底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块
底板扩展接口丰富 底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口CAMERA接口、ADC电位器、SPDIF、SDIO接口等。 支持多种显示屏 迅为在MP157开发板支持了多种屏幕࿰…...

「实用分享」用界面组件Telerik UI for Blazor增强你的财务图表!
Telerik UI for Blazor拥有110个原生的、易于定制的Blazor UI组件和高性能网格组件,能节约一半的时间开发全新的Blazor应用程序并使传统web项目现代化,其中囊括了设计和生成工具等。Telerik UI for Blazor控件提供的控件,可轻松满足应用程序对…...
使用org.openscada.utgard java opcda库做opc客户端时长期运行存在的若干问题
牛11月09日反馈东区存在以下问题,由于在现场未来得及处理。11月10日反馈西区亦存在此问题。经排查此问题已存在相当长一段时间(最长为9月底即存在)。 1、读报错Value: [[org.jinterop.dcom.core.VariantBody$EMPTY212c0aff]], Timestamp: Mo…...

杰克与魔法树的冒险
从前有一个小村庄,里面住着一个善良勇敢的小男孩叫杰克。杰克非常喜欢冒险和探索未知的事物。 一天,杰克听说村庄附近的森林里有一个神奇的魔法树,树上结满了金色的苹果。他决定去寻找这棵魔法树,并带回一些金苹果给村庄的居民们。…...

第九节HarmonyOS 常用基础组件22-Marquee
1、描述 跑马灯组件,用于滚动展示一段单行文本,仅当文本内容宽度超过跑马灯组件宽度时滚动。 2、接口 Marquee(value:{start:boolean, step?:number, loop?:number, fromStart?: boolean ,src:string}) 3、参数 参数名 参数类型 必填 描述 st…...

烽火传递
看似很简单的单调队列优化DP 但是如果状态是表示前\(i\)个烽火台被处理完的最小代价(即不知道最后一个烽火台在哪里)就无法降低复杂度 因为假设你在区间\([i-m1,i]\)中枚举最后一个烽火台(设为\(k\)),你前面的状态并不是\(f[k-1]\),因为此时\(k\)已经可以…...
《深入浅出Go语言》大纲
目录 为什么选择《深入浅出Go语言》? 基础核心模块 为什么选择《深入浅出Go语言》? 🚀 全面的基础知识体系 从环境搭建开始,对Go语言核心知识点进行深入探讨,深度挖掘每个基础知识的本质,为后续深入学习…...

flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用
flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用 需求(实现的效果)功能实现htmlcssjs 需求(实现的效果) 批量显示视频,后端若返回有imgUrl,则直接显示图1, 若无…...

【鸿蒙】大模型对话应用(三):跨Ability跳转页面
Demo介绍 本demo对接阿里云和百度的大模型API,实现一个简单的对话应用。 DecEco Studio版本:DevEco Studio 3.1.1 Release HarmonyOS SDK版本:API9 关键点:ArkTS、ArkUI、UIAbility、网络http请求、列表布局、层叠布局 页面跳…...

明道云入选亿欧智库《AIGC入局与低代码产品市场的发展研究》
2023年12月27日,亿欧智库正式发布**《AIGC入局与低代码产品市场的发展研究》**。该报告剖析了低代码/零代码市场的现状和发展趋势,深入探讨了大模型技术对此领域的影响和发展洞察。其中,亿欧智库将明道云作为标杆产品进行了研究和分析。 明…...
【深度学习】SDXL TensorRT Dockerfile Docker容器
文章目录 过程SDXL TensorRT构建SDXL TensorRT LCM 调度器过程 docker push kevinchina/deeplearning:cuda12.1torch2.1.1 FROM nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive# 安装基本软件包 RUN apt-get update && \apt-get u…...

深入了解 Ansible:全面掌握自动化 IT 环境的利器
本文以详尽的篇幅介绍了 Ansible 的方方面面,旨在帮助读者从入门到精通。无论您是初学者还是有一定经验的 Ansible 用户,都可以在本文中找到对应的内容,加深对 Ansible 的理解和应用。愿本文能成为您在 Ansible 自动化旅程中的良师益友&#…...

PPT、PDF全文档翻译相关产品调研笔记
主要找一下是否有比较给力的全文档翻译 文章目录 1 百度翻译2 小牛翻译3 腾讯交互翻译4 DeepL5 languagex6 云译科技7 快翻:qtrans8 simplifyai9 officetranslator10 火山引擎翻译-无文档翻译1 百度翻译 地址: https://fanyi.baidu.com/ 配套的比较完善,对于不同行业也有区…...
JavaScript 垃圾回收的常用策略和内存管理
垃圾回收 JavaScript 是使用垃圾回收的语言,也就是说执行环境负责在代码执行时管理内存。在 C 和 C等语言中,跟踪内存使用对开发者来说是个很大的负担,也是很多问题的来源。JavaScript 为开发者卸下了这个负担,通过自动内存管…...
AWS 亚马逊 S3存储桶直传 前端demo 复制即可使用
自己踩过坑不想别人也踩坑了 亚马逊S3存储桶直传前端demo复制即可使用 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0…...

Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(七):消息框交互功能添加
Tailwind CSS 实战,基于Kooboo构建AI对话框页面(一) Tailwind CSS 实战,基于Kooboo构建AI对话框页面(二):实现交互功能 Tailwind CSS 实战,基于 Kooboo 构建 AI 对话框页面&#x…...
电脑频繁黑屏怎么办
有没有遇到过这种糟心事儿:正兴致勃勃地打游戏、赶方案,或者追着喜欢的剧,电脑突然黑屏了!而且还频繁出现,简直让人抓狂。今天咱们就来好好聊聊,电脑频繁黑屏到底该怎么办。 硬件问题排查 检查显示器连接…...
Palo Alto Networks Expedition存在命令注入漏洞(CVE-2025-0107)
免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。使用者应确保其行为符合相关法律法规,并取得目标系统的明确授权。 对于因不当使用本文信息而造成的任何直…...

鸿蒙Next开发真机调试签名申请流程
背景: 在学习鸿蒙next开发应用的初期总是会遇到一堆的问题,毕竟鸿蒙next开发不管是他的ArKTS语言还是他的开发工具DevEco Studio都还在起步阶段,就像当初的Android起步一样,总会有资料不足的一些问题。就比如我们学习下载完DevEco…...

对抗性提示:大型语言模型的安全性测试
随着大语言模型(LLM)在虚拟助手、企业平台等现实场景中的深度应用,其智能化与响应速度不断提升。然而能力增长的同时,风险也在加剧。对抗性提示已成为AI安全领域的核心挑战,它揭示了即使最先进的模型也可能被操纵生成有…...

计算机网络 | 1.2 计算机网络体系结构与参考模型
计算机网络体系结构与参考模型 目录 计算机网络体系结构与参考模型 【思维导图】 1、计算机的分层结构 1、为什么要分层? 2、什么是计算机网络体系结构 2、计算机网络协议、接口和服务 1)协议: 2)接口: 3…...
图像分类进阶:从基础到专业 (superior哥AI系列第10期)
图像分类进阶:从基础到专业 🚀 前言 👋 哈喽,各位深度学习的探索者们!我是你们的老朋友superior哥 😎 经过前面九篇文章的学习,相信大家对深度学习的基础概念、神经网络架构、以及训练部署都…...

Filebeat收集nginx日志到elasticsearch,最终在kibana做展示(二)
EFK 项目需求是要将 一天或15分钟内 搜索引擎抓取网站次数做个统计,并且 如 200 301 404 状态码 也要区分出来, 访问 404 报错的 url 也要截取出来 前期 收集数据 看这篇文章,点击跳转 收集数据完成之后,使用下面方法做展示 创建一个 仪表…...
大数据离线同步工具 DataX 深度实践与 DataX Web 可视化指南
一、引言 在大数据领域,异构数据源间的数据同步是核心需求之一。传统工具如 Sqoop 基于磁盘 IO 的 MR 架构在性能上存在瓶颈,而DataX作为阿里巴巴开源的离线数据同步工具,凭借内存级数据传输和分布式并行处理能力,成为国内大数据…...