Java查询Mysql数据库时区问题(相差13/14)个小时
一、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)个小时相关推荐
- MySql数据库记录相差14小时排错,使用Java访问Mysql数据库时出现时区异常的解决方案
最近遇到1个大坑,A系统迁移到B系统,2边系统 同1个字段 createTime 看到的不一致. 表象: A系统: 2019-6-10 17:34 B系统: 2019-6-11 .... 再次尝试: ...
- 【java 操作mysql】java连接mysql数据库并查询数据
做java开发不可避免要处理数据库,所以这里写篇用jdbc来连接mysql的文章,java是一种高性能,通用的语言 .这使得它适合于编写高效的ETL生产代码和计算密集型的机器学习算法. 主要内容包括: ...
- java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)
插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和服 ...
- Java连接mysql数据库的详细教程(增查)
java连接mysql数据库[便于理解的jdbc] 一.开发环境 二.创建数据表 1. 用Navicat图形化创建 2. 用命令行创建 三.创建java工程 1.在eclipse中创建一个工程:Fir ...
- Java连接Mysql数据库增删改查实现
Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...
- java连接mysql数据库 R_Java连接Mysql数据库详细代码实例
这篇文章主要介绍了Java连接Mysql数据库详细代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 隔了一段时间没连过数据库,代码都忘记了,网 ...
- JDBC简单连接查询MySQL数据库
代码: DButil.java(连接关闭数据库的类) import java.sql.DriverManager; import java.sql.SQLException; import java. ...
- java调用mysql数据库的基本操作方法
一. 关于java与mysql数据库的连接: //加载数据库驱动Class.forName("com.mysql.jdbc.Driver");//获取连接//http://bai ...
- JAVA 访问MySQL数据库(使用方法及测试)
最近我们的JAVA课程讲到数据库,老师一直强调搭建数据库环境(JDBC)的重要性,刚好我的电脑前段时间重装过,也可以趁着这个机会再来回顾一遍JDBC的搭建. 说明:本文使用的JDBC框架是基于JAVA ...
- MySQL——Java 访问 MySQL 数据库
一. 下载与安装 MySQL Connector/J MySOL 驱动 MySQL Connector/J 下载网站 https://dev.mysql.com/downloads/co ...
最新文章
- boost::fusion::as_vector用法的测试程序
- 判断是否是数组的方法
- Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
- Spring Boot 菜鸟教程 application.properties 常用配置
- 朴素贝叶斯进行新闻主题分类,有代码和数据,可以跑通
- idea 注释模板_常用的模板函数
- java图书分析echarts_用java实现echarts里面的柱状图
- 详解 SGA 与实例优化(部分)
- 【FIR.im赞助】jQuery编程挑战#012:生成菜单添加和删除动画效果
- Sun java认证考试真题答案及部分解析(一)
- 如何设置sap生产订单自动关闭
- 高中生计算机会考word题,高中信息技术会考操作题解析
- 基于Python的坦克大战小游戏
- [Google标准文档]如何做好代码评审
- PC 护眼模式(凑合用)
- Python 和 Web 前端选择哪个比较合适?哪个前景好?
- 概率论 —— 随机事件与概率
- matlab 变分不等式,求解变分不等式的matlab程序
- CrystalDiskInfo硬盘检测工具 标准版及萌妹版
- 医院PACS系统工作原理
热门文章
- background-color:transparent
- oracle中文chr,Oracle中chr(10) chr(9)和chr(13)用法和意义
- 云服务器修复漏洞用重启吗,漏洞修复后要重启吗
- Jupyter Notebook设置黑色背景主题,字体大小,代码自动补全
- Echarts模板(一):南丁格尔玫瑰图
- DSP与广告位之间的关系
- 5G China unicom 直放站 网管协议 实时性要求
- 3dmax2014 uv用法_3dmax2014UVW是什么意思,怎么展开UVWID:30075914
- 人工神经网络通俗解释
- PC端页面如何调用QQ进行在线聊天?