查看: 6935|回复: 4

系统时间不对,总是显示UTC时间而不是北京时间

升级   0.17%

3

主题

3

回帖

17

积分

注册会员

Rank: 2

积分
17
发表于 2020-4-16 16:50:27 | 显示全部楼层 |阅读模式
我这里O2OA采用docker 部署的。参考的是 https://github.com/hefanbo/o2oa-docker  宿主机系统是 centos 7.
现在进入O2OA container以后,运行date,显示的时区正确,如下所示。
root@486c220757c5:/opt# dateThu Apr 16 16:42:14 CST 2020但是运行 start_linux.sh 以后,然后依次运行各个模块的时候,日志中显示的时间还是UTC时间。如下所示(我是北京时间下午16点多运行的,日志显示上午8点多)
最终结果会导致创建流程表单的时候,拟稿时间显示错误。用的时UTC时间,而不是北京时间。

>>> server directory:/opt/o2server                                                                                           >>> version:20200110145143......start storage***************************************** storage server start completed.* port: 20040.****************************************start center2020-04-16 08:33:36.778 PRINT [main] com.x.program.center.Context - com.x.base.core.project.x_program_center loading datas, entity size:22.Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.Apr 16, 2020 8:33:39 AM com.alibaba.druid.pool.DruidDataSource info
我注意到 http://o2oa.net/x_desktop/forum.html?app=ForumDocument&id=37ff8c4a-22d4-4a61-9174-094ced21d835 也提到过。现象跟我这里基本一样。
我的后台数据库是mysql。时间也设置正确了, select now(); 显示北京时间。但是我觉得应该跟mysql没有关系。
mysql> select now();+---------------------+| now()               |+---------------------+| 2020-04-16 16:54:11 |+---------------------+1 row in set (0.00 sec)
重启工作也都做过多次。包括 mysql, o2oa。
是不是我的O2OA的配置文件,例如 node_xxx.json 之类的设置问题?
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2020-4-17 14:12:45 | 显示全部楼层
不过您还有其他方式,启动的时候加一个用户时间。但是不提倡这种方式,还是将服务器的时间设置成正确的时间比较一劳永逸!

回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2020-4-16 17:48:46 | 显示全部楼层
您好:
您核对一下您系统的两个时间
查看当前系统时间  date
查看当前硬件时间  hwclock
回复

使用道具 举报

升级   0.17%

3

主题

3

回帖

17

积分

注册会员

Rank: 2

积分
17
发表于 2020-4-17 10:18:15 | 显示全部楼层
在docker container中运行 date 的结果在上面已经提到,如下(这是昨天下午16点左右运行结果):
root@486c220757c5:/opt# dateThu Apr 16 16:42:14 CST 2020
关于hwclock,刚刚试了一下。如下所示。这个docker image是基于ubuntu 18.04的。但是在container里边运行hwclock,看上去失败了。我在一台真实的ubuntu 18.04 中运行 hwclock的结果不是这个样的。
============ 以下是在 docker container 里边运行的结果 =================root@066e796409eb:/opt# hwclockhwclock: Cannot access the Hardware Clock via any known method.hwclock: Use the --debug option to see the details of our search for an access method.                                                                         root@066e796409eb:/opt# hwclock --debughwclock from util-linux 2.31.1System Time: 1587089328.535187  <--- 此处不带时区信息,网上查了查,显示 Fri, 17 Apr 2020 02:08:48 GMTTrying to open: /dev/rtc0Trying to open: /dev/rtcTrying to open: /dev/misc/rtcNo usable clock interface found.hwclock: Cannot access the Hardware Clock via any known method.root@066e796409eb:/opt# cat /etc/os-releaseNAME="Ubuntu"VERSION="18.04.1 LTS (Bionic Beaver)"ID=ubuntuID_LIKE=debianPRETTY_NAME="Ubuntu 18.04.1 LTS"VERSION_ID="18.04"HOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"                                                                            VERSION_CODENAME=bionicUBUNTU_CODENAME=bionic
=========== 以下是在真实ubuntu 18.04 上运行的结果 =============
cz@ThinkPad-T61:~$ date
2020年 04月 17日 星期五 10:14:18 CST
cz@ThinkPad-T61:~$ sudo hwclock
2020-04-17 10:14:24.498946+0800
cz@ThinkPad-T61:~$ sudo hwclock --debug
hwclock from util-linux 2.31.1
System Time: 1587090189.966517
Trying to open: /dev/rtc0
Using the rtc interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2020/04/17 02:23:10
Hw clock time : 2020/04/17 02:23:10 = 1587090190 seconds since 1969
Time since last adjustment is 1587090190 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2020-04-17 10:23:09.936085+0800 <--------- 此处显示的时间带有时区信息。
看起来,docker container对date支持(时间时区均正确),但是hwclock不支持。但是在我宿主机 centos 7上运行 date和hwclock跟docker container的结果一致,也是不支持hwclock。应该是这两个程序对时间的获取方式不同,而O2OA采用了跟 hwclock类似的方式,而不是date采用的方式。
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2020-4-17 11:36:54 | 显示全部楼层
您好:不是O2OA采用了跟 hwclock类似的方式
小小管理员自己的理解是:服务器有系统时间和硬件时间。所以还是您系统的这两个时间不一致导致的,很多情况下,可能您修改了配置未重启导致的。请检查一下。
回复

使用道具 举报

发表回复

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

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread