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

2023-11-19

一、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;

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • tf好朋友之matplotlib的使用——annotate标注的使用

    tf好朋友之matplotlib的使用 annotate标注的使用 标注常用函数及其作用 1 plt annotate 2 plt text 应用示例 标注常用函数及其作用 1 plt annotate plt annotate s xy
  • 【Git】Github 上传文件常见的几种错误及尝试的解决方法

    文章目录 一 分支引发的错误 二 经常性的网络引发的错误 三 没有找到名为 HEAD 的引用 四 无法识别远程仓库 一 分支引发的错误 具体的错误类型为 error failed to push some refs to https git
  • 【软件测试】Requests库中处理cookie的几种方式

    前言 发送请求时经常需要利用请求头中的cookie字段来做用户访问状态的保持 关于的cookie的处理常见有下面一些处理方式 这里做个小小的总结 1 直接在请求中传递cookies参数 import requests host http 1
  • [163]星号密码探测工具 - 代码远程线程注入的简单运用

    忙里偷闲 在看雪论坛上面看到有人发布了一个 Win7星号密码探测工具 发现 有那么一点 小用处 用处不大的原因是 这个程序的的能力相当有限 只能查看一部分安全性不高的软件的密码框里面的程序 如果你要拿它来看QQ的密码 想当然 那是不可能了
  • printf怎么输出? 如何正确使用%s,%c,%d,%p?=>这篇详解用法

    printf怎么输出 gt 如何正确使用 s c d p d试例 include
  • jquery 全国 三联 地址选择

    https www jq22 com demo jquery jdxz20160902
  • 中文命名实体识别

    中文命名实体识别 1 语言技术平台 LTP 2 Pyhanlp 3 BosonNLP 1 语言技术平台 LTP LTP官方地址 语言技术平台 Language Technology Plantform 要想用LTP实现中文命名实体识别非常简
  • JAVA基础06方法

    6 方法 方法可以用于定义可重用的代码以及组织和简化编码 6 1 定义方法 方法的定义由方法名称 参数 返回值类型以及方法体组成 定义方法的语法如下所示 修饰符 返回值类型 方法名 参数列表 方法体 我们一起来看一个方法的定义 该方法找出两
  • Normalizing Flows (NF) - 流模型 - 研究方向

    Normalizing Flows An Introduction and Review of Current Methods 2020 TPAMI Open problems and possible research direction
  • K8S暴露端口-dubbo应用远程Debug

    1 Dockerfile增加环境变量 ENV JAVA OPTS Xdebug Xrunjdwp transport dt socket address 9901 server y suspend n 2 暴露端口 template ser
  • Spring的两种IOC容器

    文章目录 Spring IOC容器 BeanFactory 怎样创建BeanFactory BeanFactory中的方法 ApplicationContext 几种ApplicationContext 如何创建ApplicationCon
  • 安装batocera-linux教程_batocera游戏系统,一个U盘搞定所有模拟器

    本帖最后由 仙鬼同拥 于 2020 5 10 09 57 编辑 去年有人发过一个求助帖找这个模拟器系统 今天有人私信说链接打不开了 就自己开一贴说一下下载安装过程吧 原求助帖地址https www 52pojie cn thread 994
  • STM32 高级定时器周期、频率、占空比、对外输出电压详解

    STM32 高级定时器 最近在研究电机 对TIM定时器研究了一些 将一些存在疑惑的问题 通过试验和示波器分析 得到以下结论 供大家学习参考 1 介绍输出电压高低判断 输出比较时 OC1对外输出电压为示波器可以读取的电压 也是我们最终使用的电
  • c语言 凯撒加密

    为了防止信息被别人轻易窃取 需要把电码明文通过加密方式变换成为密文 输入一个以回车符为结束标志的字符串 少于80个字符 再输入一个整数offset 用凯撒密码将其加密后输出 恺撒密码是一种简单的替换加密技术 将明文中的所有字母都在字母表上偏
  • 解决Docker容器中Mysql中文乱码问题

    进入容器 修改 etc mysql my cnf 添加如下配置 client port 3306 socket var lib mysql mysql sock default character set utf8 mysqld port
  • Microsoft Office 2010安装

    哈喽 大家好 今天一起学习的是office2010的安装 有兴趣的小伙伴也可以来一起试试手 一 测试演示参数 演示操作系统 Windows 7 不建议win10及以上操作系统使用 系统类型 64位 演示版本 SW DVD5 Office P
  • python库Camelot从pdf抽取表格数据以及python库camelot安装及使用中的一些注意事项

    一 python库camelot安装及使用中的一些注意事项 1 camelot方法有两种解析模式 流解析 stream 格子解析 lattice 其中格子解析能够保留表格完整的样式 对于复杂表格来说要优于流解析模式 同时 camelot方法
  • word2016怎么显示修改痕迹

    写需求文档时 想保留每次和产品沟通后修改的痕迹 避免扯皮 这就使用到了 word的审阅功能 1 点击 审阅 点击图中1的图片 点击高级选项进行修改内容的标记设置
  • 2022.04.11【读书笔记】

    文章目录 摘要 研究意义 转录组学意义 技术比较 研究方法 细胞筛选 文库构建 测序 实验方法 实验流程 常见问题 分析内容 重点 分析内容总览 细胞亚群分类 细胞类型频率统计 Marker基因分析 富集分析 样本差异分析 逆时分析 WGC
  • Java查询Mysql数据库时区问题(相差13/14)个小时

    一 CST GMT UTC 1 1 CST 这个代号缩写 并不是一个统一标准 目前 可以同时代表如下 4 个不同版本的时区概念 China Standard Time 中国标准时区 UTC 8 Cuba Standard Time 古巴标准