Java接收到MySQL查出的date类型输出格式不对,时间也不对
2023-09-11 14:19:00 时间
问题
查询某条数据,里面有个 effective_time 字段,数据库里保存的该条数据的 effective_time 的值是 2023-04-13
,但是使用postman调用接口,返回的确是 2023-04-12T16:00:00.000+00:00
,不仅格式不对,而且时间还慢了一天。
但是在 application.yml 中配置数据库连接的时候,确实指定了时区是shanghai(东八区)。
spring:
application:
name: demo
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/itums?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useSSL=false
username: root
password: xxx
type: com.alibaba.druid.pool.DruidDataSource
解决方法
解决方法:使用@JsonFormat注解。
@JsonFormat注解是一个时间格式化注解,用于格式化时间。@JsonFormat默认情况下是timeZone为GMT(即标准时区),和北京时间相差8小时。
因此,在实体类的 effective_time 成员上加上 @JsonFormat 注解,指定格式和时区(东八区)。这样就能解决格式问题和时间问题了。
@Data
public class SystemAvailability implements Serializable {
//其他字段省略...
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date effectiveTime;
}
相关文章
- java集合(3)- Java中的equals和hashCode方法详解
- 【MySQL高级】MySql中常用工具及Mysql 日志
- 【JAVA】在java类中连接和读取mysql数据库的实例(控制台显示)
- MySQL无法启动报 Error: could not open single-table tablespace file ./mysql/innodb_table_sta
- Java项目(前端vue后台java微服务)在线考试系统(java+vue+springboot+mysql+maven)
- MySQL 调优基础(一) CPU与进程
- 《深入浅出MySQL:数据库开发、优化与管理维护(第2版)》一一1.3 MySQL的配置
- 基于Java+MySQL实现(界面)某高校科研管理系统【100010633】
- 基于Java+MySQL实现的(Web)高校科研实验室网站【100010565】
- 基于Java+MySQL构建MVC架构的企业公司管理系统【100010278】
- 基于Java(SSM+SpringBoot+Thymeleaf)+MySQL 开发的论坛社区网站【100010072】
- Java IDEA中设置导入import java.xx.*和设置导入具体的import java.xx.yy;
- Mysql 5.7源码编译启动 报error问题:The server quit without updating PID file (/data/data_mysql/mysql.pid).
- mysql新版本问题
- java学习路线-Java技术人员之路从0基础到高级
- (3.7)mysql基础深入——mysqld 启动与初始化源码解析【待写】
- java se +mysql——基于控制台实现简易餐厅管理系统
- 猫眼电影爬取(一):requests+正则,并将数据存储到mysql数据库
- 菜鸟教程的 mysql-connector 基础
- 解决Java使用response下载文件报错,并总结可能出错的原因: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。