Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 476|回复: 0

Spring获取日期时间差8小时问题解决

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-6-14 23:35:03 | 显示全部楼层 |阅读模式

    这个问题,恶心的一批。。无力吐槽

    原文地址:https://blog.csdn.net/m0_38043362/article/details/78855196?utm_source=blogxgwz8

    导致这个问题的原因,网上搜了一下,大概意思是:spring转json的默认实现jackson中会根据时区去转换时间,而jackson的默认时区跟国内是相差8小时的,所以这里得重新设置当前项目地所在时区。

    1. application.yml 或者application.properties 文件中数据库连接方式追加时区设置serverTimezone=GMT+8,这里转换+号为 %2b 后使用

    spring:
        datasource:
            # 主数据源
            datasource:
                driverClassName: com.mysql.jdbc.Driver
                jdbc-url: jdbc:mysql://localhost:3306/ga_qhfj_microffice?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2b8&useSSL=false
                username: root
                password: root

    2.  application.properties 或  application.yml添加配置

    #application.properties文件配置
    spring.jackson.time-zone=GMT+8
     
    ------------------------------------
     
    #application.yml文件配置
    spring:
        jackson:
            time-zone: GMT+8

    3.返回的实体类使用注解@JsonFormat

    public class ArticleListVo {
        private Long articleId;
     
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
        private Date createTime;
    }

     

    2019.6.10

    这些方法都有些问题,本来我用的是第二种,结果发现有问题的时间戳正常了项目中其他地方的个别的时间戳又错了,还是用最笨的办法吧

    在实体中多加两个String属性用来接收日期

    在sql语句中将出问题的时间转成字符串,在起个加的字段名称的别名,在页面中展示着两个新加的属性

    sql中Data 转 字符串 方法如下

    DATE_FORMAT(table.start_time,'%Y-%m-%d %h:%i:%s') AS startTimenew

    DATE_FORMAT(table.end_time,'%Y-%m-%d %h:%i:%s') AS endTimenew,

    问题解决。。

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-2 04:47 , Processed in 0.054007 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表