SpringBoot Date类型插入数据库始终比正确时间早一天问题解决办法

bug描述

昨天的Date插入不进去问题解决后,一直没发现其实插入的时间一直比正确的时间早一天
输出sql语句,发现insert语句还是对的,不知道为什么插入数据库之后结果就早了一天
https://blog.csdn.net/qq_37630354/article/details/82814330

尝试解决

尝试在application.property 中设置时区未果:

#time-zone start
spring.jackson.time-zone=GMT+8
#time-zone end

后来在大神一句“你们数据库是怎么连的”,我才发现application.property连接数据库的配置中已经有一句时区的设置,在第一行设置的url的末尾:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/studentsManagement?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

其实serverTimezone这个参数最初是没有的,报了下面的错:

The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or
represents .....

参考博客:https://blog.csdn.net/qq_37630354/article/details/82814330 之后才加上去的。

首先我的第一印象也是改成GMT+8,但是报错:

No timezone mapping entry for ‘GMT 8

后来直接删掉&serverTimezone=GMT,结果还是报了最初的时区乱码错:

The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or
represents .....

又把GMT改成UTC,不报错了,但时间还是差一天。

自己重看之前那篇参考博客,以及大神指点,发现应该写成GMT%2B8,因为

“url里面,+都要用%2b”。

就好了!
bug就解决了!!

转载自:https://www.cnblogs.com/YuQiao0303/p/10054374.html

原文地址:https://www.cnblogs.com/guo-xu/p/12008246.html

时间: 2024-10-21 11:30:30

SpringBoot Date类型插入数据库始终比正确时间早一天问题解决办法的相关文章

bootspring网站项目,Date类型插入数据库始终比正确时间早一天问题的解决

bug描述 昨天的Date插入不进去问题解决后,一直没发现其实插入的时间一直比正确的时间早一天 输出sql语句,发现insert语句还是对的,不知道为什么插入数据库之后结果就早了一天 https://blog.csdn.net/qq_37630354/article/details/82814330 尝试解决 尝试在application.property 中设置时区未果: #time-zone start spring.jackson.time-zone=GMT+8 #time-zone en

【转】PHP date("Y-m-d H:i:s");获取当前时间 差8小时解决办法

原因:                                                                                              网络资源整理 从php5.1.0开始,php.ini里加了date.timezone这个选项,并且默认情况下是关闭的也就是显示的时间(无论用什么php命令)都是格林威治标准时间和我们的时间(北京时间)差了正好8个小时. 关于timezone 大陆内地可用的值是:Asia/Chongqing ,Asia/S

PHP date("Y-m-d H:i:s");获取当前时间 差8小时解决办法

从php5.1.0开始,php.ini里加了date.timezone这个选项,并且默认情况下是关闭的也就是显示的时间(无论用什么php命令)都是格林威治标准时间和我们的时间(北京时间)差了正好8个小时. 关于timezone 大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi ,PRC(依次为重庆,上海,乌鲁木齐,中华人民共和国)港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港

Oracle数据库以date类型保存日期时,Java中用哪个类对应数据库的date类型?

1. 使用JDBC操作Oracle数据库时,使用java.sql.Date类型对应数据库的date类型,此时只能保存和读取日期部分, 时间(时分秒)部分不能读取和保存:  查询结果集可以直接获取Date类型的数据:java.sql.Date date=resultSet.getDate("dateTime"): java.sql.Date类型的数据也可以直接保存到数据库或者与数据库中date类型的数据直接比较大小: 字符串的日期,则用SQL语句的转换函数 to_date('2017-4

java用POI读取excel时date类型出现的问题

最近用poi读取excel并传入数据库中,但是出现了一个非常奇葩的问题,一直困扰了我很久 就是读取时date类型出现年份和日读取正确,但是月份为00的情况,我冥思苦想了很找了久,一直找不到原因 今天突然发现时自己粗心导致的 之前的错误代码: Date time=new Date(); time=cell.getDateCellValue(); //按指定格式输出 SimpleDateFormat df=new SimpleDateFormat("yyyy/mm/dd hh:mm:ss"

java中java.util.Date和java.sql.Date区别以及数据库的Date和DateTime

在设计数据库和java类的时候经常用到Date类型,数据库的CREATE_TIME字段用varchar类型还是String类型?刚入门的人总会感觉String更好用,因为截取就行了,而且数据库和java类之间无缝衔接,反正传过取是什么就存什么,不需要担心其他的,只要管好在java代码中生成的时间信息并转化成String就万事大吉了. 但实际上正规的还是用Date来存储,因为String类型如果出现空值,截取的时候回报错,而且在其他处理时间值的类型上还要转来转去,经常看到说针对sql使用java.

Date类型常用概念及方法总结(1)

Date类型使用UTC(国际协调时间)1970年1月1日零时开始经过的毫秒数来保存时间. (1)创建当前日期 调用Date不传递参数的情况下,创建的新对象自动获得当前日期和时间(本地时区). var now=new Date(); (2)创建特定的日期和时间 如果要创建特定的日期对象,必须传入表示该日期的毫秒数(即从UTC时间1970年1月1日至该日期的毫秒数).为简化这一过程,ECMAScript提供了两个方法:Date.parse()和Date.UTC(): var time1=new Da

向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE('{0}','YYYY-MM-DD'))

需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的.这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败. 需要通过TO_DATE('字段','YYYY-MM-DD'))转换.如下: string.Format("insert into tablename (TIME) values(TO_DATE('{0}','YYYY-MM-DD'))",now) 错误写法: string.Format("insert in

Oracle数据库使用mybatis的时候,实体类日期为Date类型,mybatis里面定义的是Date类型,插入的时候,时分秒全部是12:00:00问题

实体类中日期定义的是Date类型的,没毛病: 我在mybatis里面定义的是Date类型的,进行测试的时候发现,数据库插入的日期的时分秒全部都是一样的,都是12:00:00,很郁闷: 后来把mybatis里的类型改为TIMESTAMP,发现查询,插入和修改都正常了. 原文地址:https://www.cnblogs.com/zhang-yawei/p/10362849.html