栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ubuntu部署java项目时间相差8小时 已解决

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ubuntu部署java项目时间相差8小时 已解决

java new date()时间与ubuntu系统服务器时间相差8小时

项目是需要放置在ubantu系统上,当我首次在ubuntu部署了服务器,发现new Date()打印出来的时间与时区为北京的时间相差了8个小时,而后我马上进入ubuntu系统查看并且修改了系统的时区,设置为了Asia/Shanghai 上海时区,但是在ubuntu打印系统时间时仍然存在相差8小时的时间

设置完成后,重启了java服务器new date()仍然相差8小时…

后续在网上看了一些帖子,就在项目启动时设置了时区,代码如下

@Component
@Order(value = 1)
@Slf4j
public class InitMQStartThread implements ApplicationRunner {

    @PostConstruct
    void started() {
        log.info("修改时区前时间:{}", new Date());     //Tue 2022-05-24 02:54:58 UTC
        TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai "));
        log.info("修改时区后时间:{}", new Date());     //Tue 2022-05-24 10:54:58 CST
    }
}

这时打印出来的时间很令人满意,但没想到后续会出现更严重的问题

当我使用代码获取数据库数据(数据库mysql 创建时间字段设置datetime)时,发现创建时间莫名其妙的加了8个小时,而且是每获取一次数据这个创建时间都会自动加8小时,这时我意识到是因为设置了以上代码块设置了时区的问题,系统在获取数据库时间时默认认为是世界时间(世界时间比shanghai时区少8小时)所以系统根据以上代码块直接加了8小时修改为了shanghai时区的时间,之后我便删除了此段代码。
后续终于ubuntu系统内进行修改后,java new date()时间才与ubantu系统时间想匹配
在ubantu运行命令

***@***:~********$ echo 'Asia/Shanghai' >/etc/timezone

之后再重启java项目即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/930234.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号