服务器时间正确,Java程序时区不对问题解决

news2025/1/12 22:02:32

服务器执行date命令显示时间正确
执行timedatectl status命令结果如下:
在这里插入图片描述
看起来是Time zone没有设置好,但是登录另外一台正常的服务器,执行timedatectl status也是一样的

直接写一个简单的Java程序TestTimeZone.java:

import java.util.TimeZone;

public class TestTimeZone{
    public static void main(String[] args) {
        System.out.println(TimeZone.getDefault());
    }
}

编译&运行:
javac TestTimeZone.java
java TestTimeZone

分别在两台服务器上运行,对比结果:

//错误时区
sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]

//正确时区
sun.util.calendar.ZoneInfo[id="Asia/Chungking",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]

阅读JDK源码,大致整理了一下Java获取默认时区的流程:

  1. 读取系统属性user.timezone(VM options)
  2. 读取环境变量 TZ 的值
  3. 读取文件/etc/timezone的值
  4. 查找 /etc/localtime文件,如果文件/etc/localtime是软链接,则直接读取软链的路径和文件名作为时区
  5. 如果文件/etc/localtime不是软链接而是一个普通文件,则去/usr/share/zoneinfo目录下读取时区文件,进行内容匹配,匹配到内容一致的文件名作为时区
  6. 如果都找不到,则以GMT作为默认时区

检查两台服务器进行验证,可以确定user.timezone和TZ都是没有设置的,然后/etc/timezone文件也没有,排除掉前3个
查看/etc/localtime文件,不是软链接,是一个普通文件

对 /etc/localtime进行查看:
先查看时区正确的机器,对比/etc/localtime文件和/usr/share/zoneinfo/Asia/Chungking文件,内容是相同的
再查看时区错误的机器,/etc/localtime文件内容和时区正确的机器相同,但是/usr/share/zoneinfo/Asia/Chungking文件内容不知为何被修改了

至此已经定位到原因,实际上即使时区正确的机器,时区设置也不太合理
解决问题的办法很多,可以通过把/etc/localtime软链到时区文件解决
我这里直接采用timedatectl set-timezone Asia/Shanghai命令的方式(实际也是通过软链的方式)

保险起见同时创建/etc/timezone文件,并设置内容为:Asia/Shanghai

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/998901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

consul 键值对操作命令

1. 创建或更新—>put [rootlocalhost ~]# consul kv put redis/config/connection 5 Success! Data written to: redis/config/connection[rootlocalhost ~]# consul kv put aaaaaaaaaaaa 5 Success! Data written to: aaaaaaaaaaaa /redis/config会生成两个目录&#xff…

【小吉送书—第二期】阿里后端开发:抽象建模经典案例

文章目录 0.引言1.抽象思维2.软件世界中的抽象2.1 命名抽象2.2 分层抽象2.3 原则抽象 3. 经典抽象案例3.1 方案一:战术抽象,多快好省,跑步前进3.2 方案二:深入分析,透过表象,探寻本质 5. 推荐一本书&#x…

基于奇偶模的跨线桥(crossover)分析

文章目录 1、ADS建模2、奇偶模分析2.1 Port1→Port2传输特性2.1.1奇模分析2.1.2偶模分析 2.2 Port1→Port4传输特性 附:正交混合网络的奇偶模分析1、 Port1→Port21.1奇模分析1.2Port1→Port2偶模分析1.3 奇模传输与偶模传输相位关系![在这里插入图片描述](https://…

鸿蒙开发实例 |搭建环境

2019年8月9日,华为在东莞举行华为开发者大会,正式发布鸿蒙操作系统;2020年9月推出了鸿蒙2.0,全面使能全场景生态,具备跨设备、服务流转、极速直达、可视可说、隐私安全五大能力。在2021年6月2日的华为新品发布会中&…

ChatGPT很好,但别想着用来写留学申请文书!

大家必须承认一件事,大多数申请者和 ChatGPT 相比,ChatGPT 产出的文章质量更高—— ChatGPT语言更精准 ChatGPT文章结构更严谨 ChatGPT行文更流畅 …… 但是为什么仍然不建议大家利用人工智能来撰写申请文书呢? 文书至关重要——比大…

IntelliJ IDEA 配合 Maven 的一些技巧(profiles)

IntelliJ IDEA 配合 Maven 的一些技巧 环境 IntelliJ IDEA 2017.1 Maven 3.3.9 Nexus 3.2.1 ## 学习前提 了解 Maven 配置的基本用法 了解私有仓库,比如 nexus 的一些概念 强烈建议把 Maven 的 settings.xml 文件同时放在:%USER_HOME%/.m2/settin…

IDEA中DEBUG技巧

Debug 介绍 Debug 设置 如上图标注 1 所示,表示设置 Debug 连接方式,默认是 Socket。Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,相对于 Socket 会快点。 ## Debug 常用快捷键 Win 快捷键M…

初高(重要的是高中)中数学知识点综合(持续更新)

1. 集合 1.1 集合的由来和确定性 确定对象构成的整体称为集合(组成集合的元素必须是确定的 ),每个集合内的对象个体成为元素(Element)。确定性: 给定一个集合,任何一个对象是不是这个集合内的元素,就已经确…

港联证券股票分析:经济拐点显现 积极提升仓位

港联证券指出,商场底部上升的方向不变,当时稳增加和活跃资本商场的活跃方针仍在持续落地,一起也看到了一些经济数据边沿企稳的迹象,跟着方针作用的进一步闪现,商场情绪有望持续好转,上市公司基本面也有望得…

vue+element使用阿里的图标库保存图标

阿里图标网站iconfont-阿里巴巴矢量图标库 我想使用保存图标,但是element的图标库没有找到可用的,首先在阿里的图标网站搜索保存 发现这个还不错 点击添加入库 点击购物车 点击添加至项目 点击下载到本地 把下载的压缩包里面的文件拖到自己项目里面 在m…

ICCV 2023 | SuS-X:仅靠类别名称微调CLIP模型,剑桥大学联合DeepMind出品

论文链接: https://arxiv.org/abs/2211.16198 代码仓库: https://github.com/vishaal27/SuS-X 对比语言图像预训练(Contrastive Language-Image Pre-training,CLIP) 已成为计算机视觉社区通向自然语言领域的一种常用的…

mp4视频太大怎么发送?这样压缩视频就对了

随着科技的发展,视频格式多种多样,其中mp4格式因为其通用性而广受欢迎。然而,有时候我们会遇到一个问题:mp4视频文件太大,导致发送变得困难。那么,如何解决这个问题呢?下面就给大家分享几个实用…

【易盾点选】

拿官网的点选做个例子吧,比较省事,水一篇~ ​ 官网的接口目前都改成V3了,多了个dt参数,以及加密的一个函数也变动了下 点选坐标在这,加密函数未变,用逗号拼接 整个加密里的函数变了,直接重新…

live555-lastest 编译

1. live555-latest 源码下载:http://www.live555.com/ 2. 将下载的live-latest.tar.gz放到指定目录下解压:tar -xvf live-latest.tar.gz,cd 进入live目录,在live目录下有很多config.xxxx的相关配置文件,config.linux默…

什么是Vercel?

Vercel 是一个云平台,用于构建、部署和扩展无服务器应用程序和静态网站。由于其易用性、速度和处理大量流量的能力,它在开发人员中越来越受欢迎。 使用 Vercel,您可以使用各种编程语言和框架构建和部署应用程序,并利用自动 SSL、…

使用vue3.0实现一些动画效果

一, 动画效果: 1,横屏滚动 2,根据横屏滚动的距离,左侧文本缩小放大 3,鼠标悬浮单张图片时根据悬浮位置发生倾斜效果 横屏滚动函数: function handlerMouserScroll(event) { //鼠标滑动list…

【校招VIP】产品思维考察之用户体验

考点介绍: 在设计产品的功能点时,我们需要设想我们的用户到底是谁?他的需求是什么? 为此我们需要做用户分析,从而得出我们的用户画像,提供解决方案。用户调研是用户分析的一种方法,用户画像是结…

ESV1-8-C、ESV1-8-O、ESV1-10-C、ESV1-10-O插装式比例流量阀放大器

比例减压阀 EPPD2_2A、EPRV1-16、EPRV2-8 比例流量阀 EFV1-10-C、EFV1-10-O、EFV1-12-C、EFV1-12-O、EFV2-12-C、EFV2-12-O、EPV16A、EPV16B、ESV1-8-C、ESV1-8-O、ESV1-10-C、ESV1-10-O、ESV1-12-C、ESV1-12-O 比例流量阀 双油口压力补偿阀 EPFR14A、EPFR24A 比例溢流阀…

SwiftUI 5.0(iOS 17)TipKit 让用户更懂你的 App

概览 作为我们秃头开发者来说,写出一款创意炸裂的 App 还不足以吸引用户眼球,更重要的是如何让用户用最短的时间掌握我们 App 的使用技巧。 从 iOS 17 开始, 推出了全新的 TipKit 框架专注于此事。有了它,我们再也不用自己写 A…

Linux系统编程-C++ I/O库

文章目录 一、 总述二、输出缓冲三、文件输入输出四、string流五、输入输出格式总述1、控制布尔值的格式2、指定整型值的进制3、在输出中指出进制4、控制浮点数格式4.1、 指定打印精度5、输出空白 六、未格式化的输入输出操作 一、 总述 C使用标准库类来处理面向流的输入和输出…