CentOS 7和PostgreSql时间时区的查看与设置
注意:修改Linux系统的时区以后,再安装jvm,jvm默认会使用系统的时区。
如果系统时区设置错误,安装jvm后,再修改系统的时区,但jvm的时区仍然不变,除非添加jvm的启动参数:-D user.timezone=GMT+08
# 查看jvm时区 1108为Java程序的进程id
[root@test ~]# ./jdk8/bin/jinfo 1108 | grep user.timezone
一、Centos7系统
1.查看时间和时区
(1).通过date查看时间和时区
[root@test ~]# date
Thu Mar 9 10:52:53 CST 2023
[root@test ~]# date -R
Thu, 09 Mar 2023 10:52:39 +0800
(2).通过timedatectl是Linux下的一条命令,用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。
[root@test ~]# timedatectl
Local time: Thu 2023-03-09 10:49:40 CST
Universal time: Thu 2023-03-09 02:49:40 UTC
RTC time: Thu 2023-03-09 00:08:04
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
2.设置时间和时区
(1).通过date设置时间
[root@test ~]# date -s "2023-03-09 10:13:30"
Thu Mar 9 10:13:30 CST 2023
(2).通过timedatectl设置时区为CST(东8区)
[root@test ~]# timedatectl set-timezone Asia/Shanghai
[root@test ~]# timedatectl
Local time: Thu 2023-03-09 11:01:40 CST
Universal time: Thu 2023-03-09 03:01:40 UTC
RTC time: Thu 2023-03-09 00:20:05
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
(3).通过复制相应的时区文件,替换系统时区文件;或者创建链接文件
[root@test ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
[root@test ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
二、PostgreSql数据库
1.查看数据库时间和时区
(1).查看时间
select now();
(2).查看时区
show time zone;
2.设置数据库时间和时区
(1). 通过命令
PRC为东八区 北京时间 UTC+8
Asia/Shanghai为东八区 上海时间 GMT+8
但是通过这种方式设置时区是session级别的,退出会话会失效
set time zone 'PRC'
(2).通过修改数据库配置文件
找到数据库配置文件postgresql.conf
[root@test ~]# find / -name postgresql.conf
/data/antdb/data/postgresql.conf
[root@test ~]# vi /data/antdb/data/postgresql.conf
修改log_timezone和timezone
log_timezone = 'PRC'
timezone = 'PRC'
最后重新加载配置
[postgresql@postgresql ~]# pg_ctl -D /var/lib/pgsql/data reload