广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何解决java获取时间相差8小时的问题
  • 779
分享到

如何解决java获取时间相差8小时的问题

2024-04-02 19:04:59 779人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录三种时间差错问题: 原因: 解决方案: 总结:都是时区问题三种时间差错问题: java下使用new date()获取的时间会和真实的本地时间相差8小时。 本地

三种时间差错问题:

  • java下使用new date()获取的时间会和真实的本地时间相差8小时。
  • 本地获取的时间没有错,存入数据库的时候时间相差8小时。
  • 数据库时间没有错,获取到了后端,之后返回给前端相差8小时。

原因:

  • new date()调用的是JVM时间,而jvm使用的时间默认是0时区的时间,即:和北京时间将会相差8小时。
  • mybatis将本地的数据传入到Mysql数据库服务器的时候,服务器会对数据进行检测,会把date类型的数据自动转换为mysql服务器所对应的时区,即0时区,所以会相差8小时。
  • SpringBoot中对加了@RestController或者@Controller+@ResponseBody注解的方法的返回值默认是JSON格式,
  • 所以,对date类型的数据,在返回浏览器端时,会被springboot默认的Jackson框架转换,而Jackson框架默认的时区GMT(相对于中国是少了8小时)。所以最终返回到前端结果是相差8小时

解决方案:

手动设置jvm时间:将时间改为第8时区的时间:


TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));

温馨提示:如果是springboot项目,可以面向切面加上这个,或者启动main类上加上如下代码:


@PostConstruct
    void started() {
        TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
    }

注意:不要用下面方式,这个方式是错的,GMT-8最后获取的时区还是0时区的。网上很多的教程说的是下面的方式,亲测不行。


TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8");
TimeZone.setDefault(tz);

在apprication.yml文件中配置一下数据库连接信息,url加上这么一句:
&serverTimezone=GMT%2b8

在这里插入图片描述

可以解决存入数据库的时间肯定是对的,本地获取的时间则未必是北京时间。将spring的json构造器的时区改正即可,在application.yml文件中添加:

在这里插入图片描述

或者可以使用注解,在entity实体类的date数据上添加注解,那么数据库传回的data数据要转换为json格式的时候就是北京时间了,再次传回到前端的时候,也不会出现时区问题。


@JsonFORMat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
 private Date lastTime;

不过,指的注意的是:这样做,如果你的jvm时间依然是后台0时区的,那么后台要用时间执行逻辑的时候,就要注意了,时间依然相差8小时,还是建议用第一方法,直接整个jvm改为北京的8时区。

总结:都是时区问题

三个问题对应三种场景:

  • 后台要存时间到数据库的时候:用方法2解决本地时间和数据库时间的问题;本质是sql的服务器时区是0时区导致。
  • 后台要使用本地时间的时候,改变jvm的时区;本质是jvm的时区是0时区导致。
  • 后台返回数据到前端的时候出现时区问题,用注解或者yml中配置json生成器解决转换格式的问题。本质是json的构造器用的时区是0时区导致。

到此这篇关于如何解决java获取时间相差8小时的问题的文章就介绍到这了,更多相关java获取时间相差8小时内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何解决java获取时间相差8小时的问题

本文链接: https://www.lsjlt.com/news/135513.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决java获取时间相差8小时的问题
    目录三种时间差错问题: 原因: 解决方案: 总结:都是时区问题三种时间差错问题: java下使用new date()获取的时间会和真实的本地时间相差8小时。 本地...
    99+
    2022-11-12
  • 解决服务器时间与实际时间相差8小时问题
    Java项目解决服务器时间与实际时间相差8小时问题 ​ 在实际部署项目到服务器运行时,我们通常会发现程序在服务器上执行的时间实际上时比现实时间要慢8小时的,其实这是因为本地时区和服务器的时区不一样,差...
    99+
    2023-09-16
    服务器 java 运维
  • 解决MySQL时区日期时差8个小时的问题
    目录场景:解决:mysql查出时间相差14小时问题重现问题排查场景: 我们在mysql客户端查询 now() 系统当前日期时间,会发现得到的结果比系统实际日期时间慢8个小时左右,这是由于不同的时区导致的 解决: 1、在 ...
    99+
    2023-01-04
    MySQL差8个小时 MySQL时区差8个小时
  • 解决docker容器与宿主机相差8小时的问题
    使用docker-compose部署时,在输出的日志以及相关事件校验及输出时,导致事件与现实相差8小时。 排查问题: 1.查看宿主机时间: # 查看时间 date Wed Sep...
    99+
    2022-11-12
  • Mysql 时区差8小时的多种问题 统统解决
    笑小枫专属目录 背景知识点代码中常见的三种时间差错问题【我遇到的】本地获取的时间没有错,存入数据库的时候时间相差8小时java下使用 `new date()`获取的时间会和真实的本地时间相差8...
    99+
    2023-08-31
    mysql java 数据库
  • android 获取手机当前时区,解决时间偏移量和夏令时差问题
     //获取当前时区     public static int getTimeZone() {         Date date=new Date();         //取得本地时间         Calendar cal =...
    99+
    2023-09-29
    android java 开发语言
  • 如何解决php获取时间不准确的问题
    这篇文章主要为大家展示了如何解决php获取时间不准确的问题,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“如何解决php获取时间不准确的问题”这篇文章吧。php有什么用php是一个嵌套的缩写名称,指...
    99+
    2023-06-06
  • python 获取毫秒级时间问题的解决
    根据网上的一些说法, 在python里获取ms级系统时间可以通过以下方式获取: import datetime print(datetime.datetime.now().mic...
    99+
    2022-11-12
  • 如何解决mysql 8小时空闲后连接超时的问题
    这篇文章主要为大家展示了“如何解决mysql 8小时空闲后连接超时的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决mysql 8小时空闲后连接超时的...
    99+
    2022-10-18
  • 如何解决mysql中共8小时空闲后连接超时的问题
    小编给大家分享一下如何解决mysql中共8小时空闲后连接超时的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!解决mysql中...
    99+
    2022-10-19
  • BAT怎么获取时间有空格问题的解决方法
    小编给大家分享一下BAT怎么获取时间有空格问题的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!最近在项目上需要把文件定时备份,用BAT文件来自动生成文件夹名,精确到秒:bat脚本时间设定如下:pushd ...
    99+
    2023-06-08
  • 如何解决springboot数据库查询时出现的时区差异问题
    目录springboot数据库查询时出现的时区差异1.在连接数据库的配置上我们添加一项2.直接在boot配置文件中增加jackson配置springboot new Date()时区...
    99+
    2023-01-06
    springboot数据库查询 数据库查询时区差异 springboot查询
  • 如何解决python 两个时间戳相减出现结果错误的问题
    本篇内容主要讲解“如何解决python 两个时间戳相减出现结果错误的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决python 两个时间戳相减出现结果错误的问题”吧!Python主要...
    99+
    2023-06-09
  • Java如何解决计算相邻两个数的最大差值的问题
    这篇文章主要介绍Java如何解决计算相邻两个数的最大差值的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!题目:给定一个数组, 求如果排序之后, 相邻两数的最大差值。 要求时间复杂度O(N), 且要求不能用非基于比...
    99+
    2023-06-25
  • 如何解决win8电脑不显示时间的问题
    这篇文章主要介绍了如何解决win8电脑不显示时间的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。点击显示隐藏的图标,自定义。选择启用或关闭系统图标。 启用时钟图...
    99+
    2023-06-28
  • 如何解决iView中时间控件选择的时间总是少一天的问题
    这篇文章将为大家详细讲解有关如何解决iView中时间控件选择的时间总是少一天的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在用iview做前端页面开发的时候,遇到一...
    99+
    2022-10-19
  • 如何解决图片上传利用request.getInputStream()获取文件流时遇到的问题
    这篇文章主要介绍如何解决图片上传利用request.getInputStream()获取文件流时遇到的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!图片上传功能是我们web里面经常用到的,获得的方式也有很多种,这...
    99+
    2023-05-30
    request
  • 如何解决MySQL存储时间类型选择的问题
    这篇文章主要为大家展示了“如何解决MySQL存储时间类型选择的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决MySQL存储时间类型选择的问题”这篇文...
    99+
    2022-10-18
  • 如何解决MySQL存储时间出现不一致的问题
    小编给大家分享一下如何解决MySQL存储时间出现不一致的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!用Java在获取了系统时间后,存入MySQL数据库时,当时间的类型为datetime或Timestamp时发现数据库...
    99+
    2023-06-14
  • 如何解决Golang结构体json时间格式化的问题
    小编给大家分享一下如何解决Golang结构体json时间格式化的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!今天开发的过程中遇到一个问题,数据库内有个日期字...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作