一、CST、GMT、UTC

1.1、CST

这个代号缩写,并不是一个统一标准,目前,可以同时代表如下 4 个不同版本的时区概念:

  • China Standard Time 中国标准时区 (UTC+8)
  • Cuba Standard Time 古巴标准时区 (UTC-4)
  • Central Standard Time (USA) 美国中央时区 (UTC-6)
  • Central Standard Time (Australia) 澳大利亚中央时区(UTC+9)

1.2、GMT

格林尼治时间(另有格林威治时间一说)

由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治时间已经不再被作为标准时间使用。现在的标准时间,是由原子钟报时的协调世界时(UTC)。

1.3、UTC

世界协调时(Universal Time Coordinated的缩写)

以原子时钟长为基础,比GMT格林威治时更加科学更加精确。

UTC是国际无线电咨询委员会制定和推荐的,若与GMT时差大于0.9秒,则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。

UTC时间格式为:YYYY-MM-DDThh:mm:ssZ。例如,2014-11-11T12:00:00Z(为北京时间2014年11月11日20点0分0秒)

中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。

GMT和UTC

目前UTC与GMT 相差为0.9秒,故二者可以基本视为一致。

二、时区问题

2.1、mysql数据库当前配置

show variables like '%time_zone%'

system_time_zone表示的是数据库所在服务器的时区。

time_zone表示mysql默认使用数据库所在服务器时区。

2.2、代码处理

java代码中查询出时间与数据库一致,查询出来后,连接器对时间做了处理。

处理代码如下:

        TimeZone timeZone = TimeZone.getTimeZone("GMT+8");Calendar instance = Calendar.getInstance(timeZone, Locale.US);instance.set(Calendar.YEAR, 2022);instance.set(Calendar.MONTH, 8);instance.set(Calendar.DATE, 23);instance.set(Calendar.HOUR_OF_DAY, 12);instance.set(Calendar.MINUTE, 22);instance.set(Calendar.SECOND, 20);long timeInMillis = instance.getTimeInMillis();

TimeZone参数来自数据库连接配置的serverTimeZone,默认为CST。

默认把查询出的时间当作Central Standard Time (USA) 美国中央时区 (UTC-6)处理,转换为当前服务所在的时区东八区,差13-14个小时(夏令时和冬令时)。

设置GMT+8后,当作东八区处理,结果与数据库时间一致。

2.3、其他处理方式

设置time_zone为+08:00

-- 这个可以修改mysql全局时区为北京时间,也就是我们所在的东8区
set global time_zone = ‘+8:00’;-- 修改当前会话时区
set time_zone = ‘+8:00’;-- 使之立即生效。
flush privileges;

Java查询Mysql数据库时区问题(相差13/14)个小时相关推荐

  1. MySql数据库记录相差14小时排错,使用Java访问Mysql数据库时出现时区异常的解决方案

    最近遇到1个大坑,A系统迁移到B系统,2边系统 同1个字段 createTime 看到的不一致. 表象: A系统: 2019-6-10 17:34 B系统: 2019-6-11 .... 再次尝试: ...

  2. 【java 操作mysql】java连接mysql数据库并查询数据

    做java开发不可避免要处理数据库,所以这里写篇用jdbc来连接mysql的文章,java是一种高性能,通用的语言 .这使得它适合于编写高效的ETL生产代码和计算密集型的机器学习算法. 主要内容包括: ...

  3. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和服 ...

  4. Java连接mysql数据库的详细教程(增查)

    java连接mysql数据库[便于理解的jdbc] 一.开发环境 二.创建数据表 1. 用Navicat图形化创建 2. 用命令行创建 三.创建java工程 1.在eclipse中创建一个工程:Fir ...

  5. Java连接Mysql数据库增删改查实现

    Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...

  6. java连接mysql数据库 R_Java连接Mysql数据库详细代码实例

    这篇文章主要介绍了Java连接Mysql数据库详细代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 隔了一段时间没连过数据库,代码都忘记了,网 ...

  7. JDBC简单连接查询MySQL数据库

    代码: DButil.java(连接关闭数据库的类) import java.sql.DriverManager; import java.sql.SQLException; import java. ...

  8. java调用mysql数据库的基本操作方法

    一.  关于java与mysql数据库的连接: //加载数据库驱动Class.forName("com.mysql.jdbc.Driver");//获取连接//http://bai ...

  9. JAVA 访问MySQL数据库(使用方法及测试)

    最近我们的JAVA课程讲到数据库,老师一直强调搭建数据库环境(JDBC)的重要性,刚好我的电脑前段时间重装过,也可以趁着这个机会再来回顾一遍JDBC的搭建. 说明:本文使用的JDBC框架是基于JAVA ...

  10. MySQL——Java 访问 MySQL 数据库

    一.   下载与安装 MySQL   Connector/J MySOL  驱动  MySQL Connector/J  下载网站 https://dev.mysql.com/downloads/co ...

最新文章

  1. boost::fusion::as_vector用法的测试程序
  2. 判断是否是数组的方法
  3. Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
  4. Spring Boot 菜鸟教程 application.properties 常用配置
  5. 朴素贝叶斯进行新闻主题分类,有代码和数据,可以跑通
  6. idea 注释模板_常用的模板函数
  7. java图书分析echarts_用java实现echarts里面的柱状图
  8. 详解 SGA 与实例优化(部分)
  9. 【FIR.im赞助】jQuery编程挑战#012:生成菜单添加和删除动画效果
  10. Sun java认证考试真题答案及部分解析(一)
  11. 如何设置sap生产订单自动关闭
  12. 高中生计算机会考word题,高中信息技术会考操作题解析
  13. 基于Python的坦克大战小游戏
  14. [Google标准文档]如何做好代码评审
  15. PC 护眼模式(凑合用)
  16. Python 和 Web 前端选择哪个比较合适?哪个前景好?
  17. 概率论 —— 随机事件与概率
  18. matlab 变分不等式,求解变分不等式的matlab程序
  19. CrystalDiskInfo硬盘检测工具 标准版及萌妹版
  20. 医院PACS系统工作原理

热门文章

  1. background-color:transparent
  2. oracle中文chr,Oracle中chr(10) chr(9)和chr(13)用法和意义
  3. 云服务器修复漏洞用重启吗,漏洞修复后要重启吗
  4. Jupyter Notebook设置黑色背景主题,字体大小,代码自动补全
  5. Echarts模板(一):南丁格尔玫瑰图
  6. DSP与广告位之间的关系
  7. 5G China unicom 直放站 网管协议 实时性要求
  8. 3dmax2014 uv用法_3dmax2014UVW是什么意思,怎么展开UVWID:30075914
  9. 人工神经网络通俗解释
  10. PC端页面如何调用QQ进行在线聊天?