时间插入 MySQL 数据库,结果竟然少了 8 小时!

存入mysql时间少了8小时 在接口测试的时候,发现时间少了8小时。通过网上各个博客发现了两个问题。 首先是显示在页面的时间格式(date)和我从api接口里测试的也不同。 时间格式的处理,前端的时间显示2020-07-13T16:02:00.000+0000 在后端添加@JsonFormat @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") <dependency> 阅读详情

点击上方“芋道源码”,选择“设为星标”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 8:55 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:my.oschina.net/u/

1034046/blog/862649

最近在用mybatis时发现,将LocalDateTime插入到数据库时时间少了8小时。

用网上其他方法试了不少,比如修改mysql时区,都不能解决。最后发现是JDBC连接的参数写错了。

经常在网上看到jdbc连接里边有这样一个参数&serverTimezone=UTC。这个UTC是协调世界时,我们中国在东八区,也就是UTC+8,和UTC差了8个小时。

这就是为什么时间插入数据库后少了8小时的原因。那么中国的时区是多少呢?在java.time.ZoneId这个类的帮助文档和源码里写有:

  • EST - -05:00

  • HST - -10:00

  • MST - -07:00

  • ACT - Australia/Darwin

  • AET - Australia/Sydney

  • AGT - America/Argentina/Buenos_Aires

  • ART - Africa/Cairo

  • AST - America/Anchorage

  • BET - America/Sao_Paulo

  • BST - Asia/Dhaka

  • CAT - Africa/Harare

  • CNT - America/St_Johns

  • CST - America/Chicago

  • CTT - Asia/Shanghai

  • EAT - Africa/Addis_Ababa

  • ECT - Europe/Paris

  • IET - America/Indiana/Indianapolis

  • IST - Asia/Kolkata

  • JST - Asia/Tokyo

  • MIT - Pacific/Apia

  • NET - Asia/Yerevan

  • NST - Pacific/Auckland

  • PLT - Asia/Karachi

  • PNT - America/Phoenix

  • PRT - America/Puerto_Rico

  • PST - America/Los_Angeles

  • SST - Pacific/Guadalcanal

  • VST - Asia/Ho_Chi_Minh

可以看到CTT - Asia/Shanghai,所以我们在jdbc的连接里使用&serverTimezone=CTT就可以正确的插入时间了。


比较简单的一个问题,有多少胖友碰到过呀?留言握个抓



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

兄弟,艿一口,点个赞!????

国科大学习资料--VLSI测试与可测试设计--2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 一、概念题 1简述可测试性测度与两个主要的测度指标的含义; 2以March C-算法为例,说明March算法的构成,以及March C-算法的故障覆盖率; 3“效果-原因”诊断法和“原因效果诊断法”的不同; 4列举四条扫描设计时出现的问 题及解决办法; 5最少写出1149.1与1500的五点不同; = = = = = 阅读详情

相关推荐

Full Range && Limit Range

Full Range && Limit Range1 Full range和Limit Range定义2 为什么会需要Limit Range3 用Full range去显示limit Range图片4 YUV转RGB5 额外 1 Full range和Limit Range定义 我们知道,对于RGB和YUV的色彩空间来说,有个位深(bit-depth)的概念;位深是指记录图像每个像素的色彩通道时所使用的bit数,常见的RGB888,YUV420-8bit。以RGB888为例,其代表R G B

zjhcj1的博客 1万+

存入数据库的时间比实际时间少了八个小时问题

如果你设置serverTimezone=UTC,连接不报错, 但是我们在用java代码插入到数据库时间的时候却出现了问题。 比如在java代码里面插入的时间为当前时间 但是在数据库里面显示的时间却和当前时间相差八个小时 有了8个小时的时差 UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。 这是我们在配置文件中选择使用: //北京时间东八区 serverTimezone=GMT%2B8 ...

xuexi_gan的博客 3701

数学:箭头符号→(to)都表示什么意义?

数学符号“→”在不同领域有不同含义:在逻辑中表示“蕴含”(p→q);在函数中表示映射关系(f:A→B);在极限中表示变量趋近(x→a);在推导过程中表示推理方向(A→B)。此外,它也可能用于向量表示或数列趋势。其具体含义需结合上下文判断,核心应用场景包括逻辑运算、函数定义、极限分析和数学推导等。

shunzi2016的博客 5586

存入MySQL的时间数据段与真实时间相比少了8个小时

这个时间字段非常重要,所以我额外的观察了一下,竟然发现存在于数据库的时间字段竟然和真实的时间相比少了8个小时。上海并不是唯一的标准时区,像北京、乌鲁木齐的时区都是可以的。在测试dao层的某个增加方法时,往数据库增加了一条。,也就是比世界标准时间早了。,但是我们国内的时间是。可以看见时区的标准是。

openallzzz 701

二阶FLL辅助三阶PLL环路的代码解读

今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD

LWN7321的博客 2634

从Wi-Fi到蓝牙:手把手教你用Cadence Virtuoso搭建一个2.4GHz锁相环频率综合器(含PFD/CP/VCO模块设计)

本文详细介绍了如何在Cadence Virtuoso中设计一个2.4GHz锁相环频率综合器(PLL),涵盖从系统架构到模块级设计的全流程。重点解析了PFD、CP和VCO等核心模块的设计技巧与仿真验证方法,帮助模拟集成电路设计师掌握高频PLL的实现要点,满足Wi-Fi和蓝牙等无线通信标准的要求。

weixin_30315723的博客 418

MySQL | 往数据库中插入时间时,差了八个小时(时区设置)

MySQL | 往数据库中插入时间时,差了八个小时(时区设置)

gaoshan12345678910的博客 1642

ArcGIS-裁剪遥感影像及dem图像

6、选择【工具箱】-【数据管理工具】-【栅格】-【裁剪】。在【输入栅格】里选择要裁剪的dem,在【输出范围】里选择刚创建的裁剪范围。选择一个输出路径,其他参数保存默认。2、起一个名称,要素类型选择【面】。点击【编辑】选择与要裁剪的dem一致的地理坐标系。1、创建需要裁剪区域的面层shp,右击选择【新建】-【shapefile】3、点击编辑器,选择开始编辑。4、选择【裁剪范围】,点击确定。5、画出想要裁剪的范围并保存。

siwenaiyou的博客 1万+

MySQL 总是差八个小时,如何破?

今天来聊一个简单的话题,这是一个小伙伴在微信上问我的,对于初学者我非常能理解这类问题带来的困扰,各种尝试,各种搜索,别人说的头头是道,但是就是解决不了自己的问题,今天我简单从两个方面来和大家聊聊这个问题,如果小伙伴们有其他的解决思路,也可以留言一起分享。 这个问题我们可以从两方面来分析: MySQL 本身的问题。 Java 代码的问题。 1. MySQL 本身问题 MySQL 本身问题,这个其实很好验证,不就是时间么,我们执行如下 SQL 看看 MySQL 上的时间跟我的电脑时间是否是一致的: sele

江南一点雨的专栏 2万+

距离多普勒谱(RD谱)绘制方法及理解

RD谱是信号处理领域常用的图形。原始信号往往是一维时域序列,如何将其二维化,并进行变换生成RD谱呢?由于刚刚接触,查阅了网络上、老师手里的资料,发现RD谱的绘制方法并不统一,有些存在一定问题。在此,将心得体会记录下来。

mddh_123的博客 3万+

从MFCC到GMM:手把手教你用Python实现说话人识别(附完整代码)

本文详细介绍了如何使用Python实现说话人识别系统,从MFCC特征提取到GMM模型训练,涵盖完整的技术流程和代码示例。通过梅尔频率倒谱系数(MFCC)和高斯混合模型(GMM)的结合,构建高效的说话人识别系统,适用于身份认证和智能交互场景。文章还探讨了从传统方法到深度学习的进阶话题,如i-vector和x-vector技术。

o1p2q3r的博客 201

卧槽!时间插入 MySQL 数据库,结果竟然少了 8 小时~

最近在用mybatis时发现,将LocalDateTime插入到数据库时时间少了8小时。 用网上其他方法试了不少,比如修改mysql时区,都不能解决。最后发现是JDBC连接的参数写错了。 经常在网上看到jdbc连接里边有这样一个参数&serverTimezone=UTC。这个UTC是协调世界时,我们中国在东八区,也就是UTC+8,和UTC差了8个小时。 这就是为什么时间插入数据库后少了8小时的原因。那么中国的时区是多少呢?在java.time.ZoneId这个类的帮助文档和源码里写有: EST -

挽风博客 815

【Bug已解决】codex: conversation context window exceeded / Token limit reached — CodeX CLI 上下文窗口超限解决方案

CodeX CLI 上下文窗口超限(context_length_exceeded)的解决方案,含开新会话、更大窗口模型、精简提示与限制工具输出。

博客 4187

mysql自动插入的时间不对 差8小时

MySQL插入时间差八小时问题的解决方法 更新时间:2019年12月15日 10:19:12 转载作者:lankeren 这篇文章主要给大家介绍了关于MySQL插入时间差八小时问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 解决MySQL插入时间差八小时问题 一般 jdbc url中 需要添加几个参数 , 大多数博客给的教程都是useSSL=false&useUnicode=true&a...

易的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Mysql将LocalDateTime插入到数据库时时间少了8小时。

最近在用mybatis时发现,将LocalDateTime插入到数据库时时间少了8小时。 用网上其他方法试了不少,比如修改mysql时区,都不能解决。最后发现是JDBC连接的参数写错了。 经常在网上看到jdbc连接里边有这样一个参数&serverTimezone=UTC。这个UTC是协调世界时,我们中国在东八区,也就是UTC+8,和UTC差了8个小时。 这就是为什么时间插入数据库后少了8小时的原因。那么中国的时区是多少呢?在java.time.ZoneId这个类的帮助文档和源码里写有: ES

可小辉的博客 3134

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java代码插入的记录时间与保存到MYSQL数据库后的时间不一致,时间相差8小时

1.问题 Java代码插入的记录时间与保存到MYSQL数据库后的时间不一致,时间相差8小时,例如: Java代码里插入的时间为:2019-03-12 14:57:53 数据库里面显示的时间为:2019-03-12 06:57:53 2.原因 JDBC连接时设置了serverTimezone=UTC; UTC代表的是全球标准时间 ,而我们使用的时间是北京时区也就是东八区...

小魑魅的博客 8594

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

插入时间数据,mysql与实际时间有8小时差问题

在springboot中,使用MyBatis插入timestamp类型的数据,插入Mysqk数据库中,在java打印时间正常 Timestamp timestamp = new Timestamp(System.currentTimeMillis()); System.out.println(timestamp.toString()); idea里打印显示时间是正常的: 但是...

weixin_44683593的博客 2035

JAVA8时间插入mysql少了8小时的解决办法

最近在用mybatis时发现,将LocalDateTime插入到数据库时时间少了8小时。 用网上其他方法试了不少,比如修改mysql时区,都不能解决。最后发现是JDBC连接的参数写错了。 经常在网上看到jdbc连接里边有这样一个参数&serverTimezone=UTC。这个UTC是协调世界时,我们中国在东八区,也就是UTC+8,和UTC差了8个小时。2021Java面试宝典 这就是为什么时间插入数据库后少了8小时的原因。那么中国的时区是多少呢?在java.time.ZoneId这个类的帮助文

程序员白楠楠的博客 2052

mysql 插入时间增加了8小时

如何实现 mysql 插入时间增加了8小时 整体流程 首先,我们需要明确一下整件事情的流程,以便让小白开发者更好地理解。下面是一个表格展示了整个流程的步骤: 步骤 操作 1 连接到数据库 2 设置时区为UTC 3 插入当前时间 4 查询插入的时间 5 关闭数据库连接 具体步骤说明 步骤一...

weixin_41533176的博客 410

JDBC连接数据库 mysql serverTimezone存储时间戳少8小时的问题

问题:Java存储时间戳发现少了8小时 排查: spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC 换成 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8 问题解决 //指定时区为北京时间东八区 ...

D.D.U的博客 3875

Java程序插入mysql数据库,时间超前8个小时的问题

1、近期发现一个问题,数据库表中字段edit_time最后更新时间, 在第一次插入,或者每更新一次update的时候,时间戳都增加了8个小时; 2、date命令发现Linux服务器时间正确: 3、通过mysql 客户端执行 select now(),发现数据库系统时间也是当前时间,没有时差: 4、并且这里设置字段更新时间edit_time是通过mysql自动执行的,以下是建表字段语句: `edit_time` timestamp NOT NULL DEFAULT C...

小哥骑单车 3629

java插入数据库mysql时间相差13小时

今天用java new dete() 插入数据库,插入成功发现时间少13小时 万能的度娘,告诉了我事情的真相: 1原来是数据库设置的时区不是我当前所在时区。 2mysql高版本会出现这个问题,比如8.0 我用5.X没事 有很多解决方案 1— 在后面添加 serverTimezone=Asia/Shanghai spring.datasource.url=jdbc:mysql://127.0.0...

孙冉的博客 5099

插入mysql数据库时间相差14个小时

背景: spring cloud 开发web项目,数据库:mysql 持久性框架:mybatis 问题: 前一段时间遇到这么一个问题:新增数据时,datatime类型的数据插入到mysql数据库后时间相差14个小时(数据库数据比当前时间少14个小时)。 排查: 1、程序在入库前没有做任何特殊处理 2、检查系统时区:CST 3、检查数据库时区:CST(没有修改的话一般都是系统时区) 造成这种问题的原...

June_D的博客 6748

Lumen 插入mysql的时间多8小时的问题解决

今天用 Lumen 框架写代码时, 也是初次体验 Lumen, 遇到了一个问题, 从数据库里查出的时间比数据库里保存的 TIMESTAMP 时间多了8个小时, 很明显这是一个时区设置的问题, 本以为可以在1分钟内解决的, 但是我错了。 根据 Laravel 4.x 和 5.0 的经验, 只需要到 config/app.php中设置下 'timezone' 参数为 'PRC' 就好了, 找到 Lu...

domorejojo 2280

数据库查询时间相差8小时解决_MySQL插入时间差八小时问题的解决方法

解决MySQL插入时间差八小时问题一般 jdbc url中 需要添加几个参数 , 大多数博客给的教程都是 useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC 这几个参数,配置结果为: jdbc:mysql://localhost:3306/test?useUnicode=true&...

weixin_33824385的博客 3663

解决mysql插入时间比实际时间少了八个小时

今天在进行测试的时候发现其他数据段都正常插入,只有时间让我有点摸不着头脑。为什么插入的时间要比时间事件少了整整八个小时,后续又再测试几组数据,发现不是随机的问题,于是感觉应该是哪里的配置项错了。通过上网查找,发现自己连接数据库的连接有一个时区设置 serverTimezone=GMT%2B8 之前一直少八个小时的原因是应为之前用的是国际事件UTC,而我们处在东八区,所以要想时间正确必须把时区...

TroubleMe博客 8393
上一篇: 52 条 SQL 语句性能优化策略,建议收藏!
下一篇: Swagger(丝袜哥)3.0 官方 Starter 终于出了,真的香吗?!
公众号-芋道源码
博客等级 码龄10年 1636粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值