数据库入库时间相差13个小时问题排查与解决

在测试时发现插入数据库后的时间值与预期存在偏差,比实际时间慢13个小时
排查步骤:
1.因为是是远程数据库,所以首先考虑是不是服务器时间设置存在问题

和实际时间一致,该条排除
2.考虑是不是数据库时区设置问题

和实际时间一致,该条排除
3.考虑Java代码在插入数据库之前对值做了改变
在步骤1查看服务器时间时,可以看到时间后面有个CST

由上图可以知道美国中部时间和中国标准时间相差14个小时,非常接近相差的13个小时。因为当前是夏季,所以刚好是相差13个小时。
至此可以初步判断应该是Java将CST理解成了美国中部时间。
3.1 验证
在数据库连接代码中加入时区设置

jdbc:mysql://xxx.xxx.xxx.xxx/xx?serverTimezone=Hongkong

  

经过测试,发现问题得以解决。

原文地址:https://www.cnblogs.com/jiathis/p/12538423.html

时间: 2024-11-07 09:42:58

数据库入库时间相差13个小时问题排查与解决的相关文章

tomcat 时间相差8个小时,百度上查到的,备份下

通常网上一查都是 修改 tomcat 的参数 ,如catalina 文件,jvm parameters 等.如果都不起作用,可以使用如下方式.. 你可以修改jdk的时间校正了,你这么来.进入 \home\user\jdk6_1.6\jre\lib\zi\Etc(你的是1.4的,反正知道是JDK目录就行了),如果你的日志显示时间比你的系统时间晚8个小时,那你就拷贝GMT-8到 \home\user\jdk6_1.6\jre\lib\zi 目录,然后把该目录下的GMT文件删除,把你刚才拷贝的文件GM

自动生成的当前时间与实际时间相差8个小时

因为时间在数据库中是以utc时间存在的,所以导出的Excel中时间也是utc的,这就不方便我们进行时间的筛选和统计了,因为和本地(北京)时间差了8个小时. 这样,我们就拿到了当前用户所在的时区与UTC时间的偏移值. 原文地址:https://www.cnblogs.com/brucexl/p/9847745.html

在MongoVUE中发现插入的时间和实际的时间相差8小时?

在Mongodb使用过程中,发现一个问题,就是我们插入Date类型时会发现保存到mongodb中的数据却晚了8个小时,这是为什么呢?我想大家在使用客户端工具如MongoVUE时,也会发现查询出来的数据也是晚了8个小时的?下面简单描述下原因. 上面的两个问题,我们依次来看是为什么? (1)在Java编码过程中,使用mongodb的java驱动包保存数据时,数据库里的数据比实际时间少了8个小时,为什么? 为了找打原因,我下载了个mongodb的java驱动包,想通过驱动包来找到原因,驱动包如下: 我

使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒

下面程序使用了两种方法计算两个时间相差 天,小时,分钟,秒 1 package jodotest; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 7 import org.joda.time.DateTime; 8 import org.joda.time.Days; 9 import org.joda.time.Hours; 10 impo

Mysql数据库显示时间与应用程序获取到的不一致的问题

如下为通过mysql客户端命令行获取到的数据,时间显示如下: 在前端页面获取到的时间如下所示: 显示相差13小时. 个人操作: 在执行set global time_zone='+08:00';与set time_zone='+08:00';后问题得到解决,此方式不需要重启Mysql! 名为 CST 的时区是一个很混乱的时区,在与 MySQL 协商会话时区时,Java 会误以为是 ,而非 . 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard T

日志时间晚13小时

问题 OS:CentOS6.3 jdk:jdk6 文件创建时间正常,日志记录时间晚于系统时间13小时 2. 查看 $ localeLANG=en_USLC_CTYPE="en_US"LC_NUMERIC="en_US"LC_TIME="en_US"LC_COLLATE="en_US"LC_MONETARY="en_US"LC_MESSAGES="en_US"LC_PAPER="

java计算两个时间相差(天、小时、分钟、秒)

public static Long dateDiff(String startTime, String endTime, String format, String str) { // 按照传入的格式生成一个simpledateformate对象 SimpleDateFormat sd = new SimpleDateFormat(format); long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数 long nh = 1000 * 60 * 60;// 一小时的毫

php晚了8小时 PHP5中的时间相差8小时的解决办法

php页面顶部加一句date_default_timezone_set("Asia/Shanghai");或者直接在php.ini设置date.timezone=Asia/Shanghai PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时. 方法1: 找到php.ini中的";date.timezone ="这行,将";"去掉,改成"date.timezone = PRC"(PRC:Peo

swift_将UIDatePicker获取到的时间传到下一个页面出现相差几个小时的问题

今天,在写swift demo的时候遇到了一个很奇葩的问题,我再 present 出来的页面中利用 UIDatePicker 选取时间,然后再将获取到的时间传回原来的主界面,结果问题出现了:B页面获取时间正常,传回A页面后时间少了9个小时.百思不得其解,Google找了一些答案说是要这样: time.timeZone = NSTimeZone.systemTimeZone() time.calendar = NSCalendar(calendarIdentifier: NSGregorianCa