精华内容
下载资源
问答
  • 问题描述 ... ...2、代码中加入:date_default_timezone_set('PRC') 以上方案均可行!... ...考虑到服务器是Hong Kong服务器,猜测是Linux系统时间的问题,需要自动校准系统时间 sudo ntpdate cn.pool.n

    问题描述

    之前做项目,php输入time()时间戳,老是慢二十多分钟,以为是php配置文件时区的问题,尝试了以下的解决方案后扔无奏效:

    1、修改php配置文件:date.timezone ="PRC"

    2、代码中加入:date_default_timezone_set('PRC')

    以上方案均不可行!那就猜测不是php的问题了,就开始考虑服务器问题了。

    解决方案

    考虑到服务器是Hong Kong服务器,猜测是Linux系统时间的问题,需要自动校准系统时间

    sudo ntpdate cn.pool.ntp.org
    
    展开全文
  • 我在部署应用到centos系统上的tomcat服务器中运行,发现操作系统的时间和tomcat中的访问日志的时间与系统时间不一致,但是查看当前操作系统的时区也是CST时区(中国标准时区)。 查看系统的时区: root@localhost:~#...

    tomcat时间与系统时间不一致问题

    我在部署应用到centos系统上的tomcat服务器中运行,发现操作系统的时间和tomcat中的访问日志的时间与系统时间不一致,但是查看当前操作系统的时区也是CST时区(中国标准时区)。

    查看系统的时区:

    root@localhost:~# date +"%Z %z"
    CST +0800
    

    如果系统时间不对,centos执行cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 修改时区

    解决方法一:

    修改catalina.sh文件

    查找catalina.sh文件路径: find / -name "catalina.sh"

    在文件的开头添加如下内容:
    export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/shanghai",重启tomcat

    但是,有的时候通过方法一还是解决不了java程序时区问题,java程序读取时间还是不对,甚至System.getProperty(“user.timezone”)都读不到时区信息。主要原因是我们在安装JDK之后发现时间不对才去修改的系统时区,此时jdk已经默认使用系统修改之前的那个时区,已经改不回来了,删掉jdk重装也没用。

    java -XshowSettings 展示java配置

    解决方法二:

    就是修改/etc/profile文件,在文件的末尾添加 export TZ='Asia/Shanghai',然后使用命令
    source /etc/profile使其生效即可。

    总结:

    java程序在初始化时区的时候,如果没有指定JVM参数-Duser.timezone=GMT+08,java程序就会默认读取操作系统的时区来初始化java程序的时区。

    为了保证java程序在启动时加载正确的默认时区:

    1、需要将系统的时区改正确

    2、还需要将硬件时钟的系统时钟校准(执行命令hwclock --systohc --localtime)

    3、修改配置文件中的时区参数

    4、在/etc/profile文件末尾添加:export TZ='Asia/Shanghai

    5、修改tomcat安装目录下的bin目录下的catalina.sh脚本,添加JVM参数JAVA_OPTS="${JAVA_OPTS} -Duser.timezone=GMT+08",来保证Tomcat的时区是东八区时区

    展开全文
  • 我在部署应用到Ubantu系统上的tomcat服务器中运行,发现操作系统时间和tomcat中的应用程序获取的时间不一致,总是相差8个小时,但是查看当前操作系统的时区也是CST时区(中国标准时区)。查看系统的时区:root@...

    我在部署应用到Ubantu系统上的tomcat服务器中运行,发现操作系统的时间和tomcat中的应用程序获取的时间不一致,总是相差8个小时,但是查看当前操作系统的时区也是CST时区(中国标准时区)。

    查看系统的时区:

    root@localhost:~# date +"%Z %z"

    CST +0800

    说明时区没有问题,是东八区时区,但是为什么tomcat启动的时候没有使用我设置好的时区呢?最后我通过java代码直接获取默认时区,发现输出的的是:Etc/UTC,怪不得时间差8小时,如下图:

    5b16cb016442

    获取系统默认时区

    Java代码获取系统默认时区:

    System.out.println(newDate());

    System.out.println(System.getProperty("user.timezone"));

    在启动java程序的时候添加上-Duser.timezone=Asia/Shanghai参数,时区变对了,其原因是java程序在启动的时候如果没有指定时区,默认会根据System.getProperty("user.timezone")去获取时区操作系统配置文件中配置的时区。

    Ubantu操作系统时区配置文件是/etc/timezone,将文件中的内容修改成Asia/Shanghai,保证java程序在启动的时候初始化时区是东八区。

    Centos6.X操作系统的时区配置文件是/etc/sysconfig/clock,将文件内容修改为ZONE="Asia/Shanghai",来修正时区为东八区,保证java程序在启动的时候初始化时区是东八区。

    修改Linux系统时区,以Ubantu和centos6.x为例:

    5b16cb016442

    修改Ubantu系统时区

    5b16cb016442

    时区修改成功

    执行:

    cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

    修改/etc/default/rcS中的UTC=yes改为UTC=no (Centos.x不用做这个操作)

    时间同步:ntpdate time.windows.com

    硬件时间和系统时间校准:

    sudo hwclock --systohc --localtime

    时区修改成功,但是记得修改时区默认配置文件/etc/timezone中的内容为Asia/Shanghai(Centos6.x修改的是/etc/sysconfig/clock文件中的内容为ZONE="Asia/Shanghai")。

    检查时间是否一致,右下图可知系统时间和硬件时间已经保持一致了:

    5b16cb016442

    检查时间是否一致

    注:在配置时区的时候,注意一定要校准系统时间和硬件时间,让两个时间保持一致。

    但是,有的时候通过以上步骤还是解决不了java程序时区问题,java程序读取时间还是不对,甚至System.getProperty("user.timezone")都读不到时区信息,只有System.out.println(java.util.TimeZone.getDefault().getID())可以读到,并且读到的是系统在修改时区的时区信息。主要原因是我们在安装JDK之后发现时间不对才去修改的系统时区,此时jdk已经默认使用系统修改之前的那个时区,已经改不回来了,删掉jdk重装也没用。

    有两种方法解决这个问题:

    1、使用-Duser.timezone=GMT+08来指定时区;

    2、就是修改/etc/profile文件,在文件的末尾添加 export TZ='Asia/Shanghai',然后使用命令source /etc/profile使其生效即可。

    总结:

    java程序在初始化时区的时候,如果没有指定JVM参数-Duser.timezone=GMT+08,java程序就会默认读取操作系统的时区来初始化java程序的时区。

    为了保证java程序在启动时加载正确的默认时区:

    1、需要将系统的时区改正确

    2、还需要将硬件时钟的系统时钟校准

    3、修改配置文件中的时区参数

    4、在/etc/profile文件末尾添加:export TZ='Asia/Shanghai

    5、修改tomcat安装目录下的bin目录下的catalina.sh脚本,添加JVM参数JAVA_OPTS="${JAVA_OPTS} -Duser.timezone=GMT+08",来保证Tomcat的时区是东八区时区

    展开全文
  • java 获取时间与系统时间不一致问题

    万次阅读 2017-11-11 15:20:34
    最近项目部署到服务器上,发现时间不对,与当前时间相差12个小时,第一反应是 系统时间是不是不对。通过date 命令查看, 发现系统用的是est 时区 (EST eastern standard time (美国)东部标准时间 慢北京时间 13...

    最近项目部署到服务器上,发现时间不对,与当前时间相差12个小时,第一反应是 系统时间是不是不对。通过date 命令查看,

    发现系统用的是est 时区 (EST eastern standard time (美国)东部标准时间  慢北京时间 13个小时。)

    那就是简单了 ,修改下时区就好了。于是按照晚上的命令将系统时区修改了下。时间正常了,重新运行程序,问题仍能存在,还是相差13个小时。以为是有缓存什么的,能后就重启系统试试,重启后再次运行程序,还是相差13个小时 ,被这个快搞得精疲力尽了 发火发火发火 

    能后写了个测试接口放到服务器上。通过调用发现。返回的时间还是忙13个小时。刚刚好,不多一份也不少一秒,所以猜测还是时区的问题。所以顺便也打印了下时区。发现时区还是EST 时区没有变过来。 再见


    能后上午搜索了下,发现也有网友遇到过相似的问题,他给出的解决方案是

    当然我会给出解决方案:

    方法一:JVM运行时增加参数,指定时区 -D user.timezone=GMT+08

    方法二:直接在程序中设置时区。System.setProperty(“user.timezone”,”GMT +08″);

    方法三:直接加上28800就好了(8hours*60min*60sec=28800)


    照着这位网友的思路。和搜索相关操作步骤,在tomcat 启动的时候,设置个默认时区方法是在 catalina.sh 文件中添加如下这行代码

    JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8  -Duser.timezone=GMT+08"

    重新启动tomcat  正常了。


    不过不知道为什么,系统的时区已经修改了,但是程序获取到的时区还是没有修改过来,不知道这个是不是和服务器有关因为服务器用的是虚机,都是在一台服务器上虚拟出来的。程序获取的不是虚机的时间,而且主机的时间。 以上只是猜测,还待验证


    展开全文
  • 最近进行项目开发,发现存在数据库内的数据和系统查询到的数据相差8小时发现有2种比较合适的方法(一)修改mysql服务的区时centos进入mysql查看/修改时区1.输入以下命令进入mysqlmysql -uroot -p然后输入 password2....
  • 我在部署应用到centos系统上的tomcat服务器中运行,发现操作系统的时间和tomcat中的访问日志的时间与系统时间不一致,但是查看当前操作系统的时区也是CST时区(中国标准时区)。查看系统的时区:root@localhost:~# ...
  • 前提引入:在项目开发过程中发现一个更新其他字段的sql 竟然在数据库中把updateTime字段修改了,而且修改的时间与当前系统北京时间相差了接近八个小时。mybatis 中update更新语句为update xxxx set xxxx = #{xxxx}...
  • 我在部署应用到Ubantu系统上的tomcat服务器中运行,发现操作系统时间和tomcat中的应用程序获取的时间不一致,总是相差8个小时,但是查看当前操作系统的时区也是CST时区(中国标准时区)。查看系统的时区:root@...
  • 一开始以为是linux服务器的系统时间不对,但查看linux服务器系统的时间和时区都没有问题。通过百度 、google查阅资料,找到解决方法。 造成这种问题的原因是:你的操作系统时区跟你JVM的时区不一致。操作系统应该是...
  • 一开始以为是linux服务器的系统时间不对,但查看linux服务器系统的时间和时区都没有问题。通过百度 、google查阅资料,找到解决方法。造成这种问题的原因是:你的操作系统时区跟你JVM的时区不一致。操作系统应该是...
  • 最近进行项目开发,发现存在数据库内的数据和系统查询到的数据相差8小时 发现有2种比较合适的方法 (一)修改mysql服务的区时 ...2.查看mysql上的当前时间 select curtime(); 3.查看时区 show...
  • 我在部署应用到Ubantu系统上的tomcat服务器中运行,发现操作系统时间和tomcat中的应用程序获取的时间不一致,总是相差8个小时,但是查看当前操作系统的时区也是CST时区(中国标准时区)。查看系统的时区:root@...
  • 具体提示内容如下:当前时间与网络上的时间不一致...... 问题原因:通过本地系统管理员进入到桌面,打开服务列表,发现windows time服务是关闭。微软对于此服务的描述是:Windows Time 系统服务保持网络上所有基于 ...
  • 我是因为服务器重启后发现数据库时间与当前时间相差了一天。 首先查询系统当前时间 : select now(); 结果如下图,发现时间不对。  输入如下代码重置时间: set global time_zone = '+08:00'; set time_...
  • Java获取时间与Linux不一致 版权 问题描述 遇到一个问题,web显示的时间比服务器时间快12小时。Tomcat和MySQL安装在同一台服务器,系统是centos7,且服务器时间和MySQL时间一致,均是当前北京时间。 解决思路 1...
  • 项目部署到linux服务器,通过new Date()获取时间和在windows本地时间不一致,通过排查问题,发现是new Date()的问题 linux系统上通过new Date()获取的时间是世界时间(UTC时间)所以在获取时间时需要对时间进行时区...
  • 在安装操作系统后,系统的时间往往是不准确的,这是因为在系统启动时,会以系统的硬件时间作为基础时间,而系统的硬件时间往往与当前时间不一致,所以装完系统后,一个首要任务是修改系统时间。但如果自己手动修改...
  • 硬件(RTC)时间,主板上面Bios的时间一般设置为:系统时间与网络时间同步,系统时间写入硬件时间。二.时间的查看方式1.查看硬件时间#hwclock2.查看系统时间date3.网络时间的更新及查看#ntpdate xxxxxxxxxxxx为在/etc/...
  • Ubuntu系统修改系统时间与时区

    千次阅读 2015-08-27 16:49:19
    今天发现服务器时间与当前时间不一致,于是就跑了一遍修改时间的命令: sudo date MMDDHHmmYYYY.ss 。修改完之后确认了一遍服务器时间没问题,就以为万事大吉了。可是过了一会儿发现,时间还是不对,整整差了12个...
  • 时间与当前时间不一致时,或者有修改系统时间需求时,可手动修改时间 date -s "2020-04-30 13:30:30" 2. 自动更新时间 手动修改时间会有误差,可同步网络时间 # 安装ntp服务 apt-get install ntp # yum install ...
  • JavaScript链表//实现列表类 ...//当前位置属性 ...PCL—低层次视觉—点云分割(RanSaC)点云分割 点云分割可谓点云处理的精髓,也是三维图像相对二维图像最大优势的体现.不过多插一句,自Niloy J Mitra教授的Glo...
  • 1、进入终端,输入date ,如果时间当前时间不一致的话,需要输入date 0927101020,这是相当于设置时间时间格式是:月、日、时、分、年,每个都是两位,如果是单数,要前面加0. 2、可能是硬盘的格式不一致,需要...
  • 概述无论在哪个操作系统上准确的时区和时间对于我们来说都非常重要,通常情况下时间错误的概率很非常低的。但是不同区域的服务器默认的时区的并相同,如果服务器的...Linux操作系统修改时间与时区:1、查看当前服...
  • Linux服务篇之一:构建NTP时间...准备2台虚拟机做测试:一、修改客户端的时间1、查看当前客户机的系统时间:发现时间准确,需要进程调整;2、同步时间的命令是:ntpdate在网络上找一下可以同步的时间服务器,有很...
  • 学生电子作业提交分析系统的开发是为了解决传统的使用FTP服务器上传作业的作业管理方式下无法防止学生乱上传作业、上传作业到错误文件夹位置中,未能对学生上传作业的大小、类型、上传时间等进行限制,作业成绩...
  • §5.1.1 响应时间与吞吐量的折衷 82 §5.1.2 临界资源 83 §5.1.3 过度请求的影响 83 §5.1.4 调整以解决问题 83 §5.2 优化的执行者 84 §5.3 设置性能目标 84 第7章 系统优化方法 85 §6.1 何时优化效率最高 85 §...
  • 工单系统问题汇总

    2019-06-26 12:34:59
    解答:可能是因为内外网的系统时间不一致造成的。如果内网比外网慢2秒以上,就会出现定时任务执行时间过期的情况。 使用ntpdate命令时间服务器同步即可,当前解决方式是每天3:00 时间服务器同步一次。 ...
  • NTP 对时间的同步处理只计算当地时间与 UTC 时间的偏移量,因此配置一个 NTP 对时间进行同步并能解决时区正确的问题。所以大家在用了国外云计算服务商如 Microsoft Azure 或其它 VPS、虚拟机时,需要注意是否与...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 295
精华内容 118
关键字:

当前系统时间与服务不一致