linux修改服务器时区为上海
同事用默认官方的镜像给开发安装好系统之,开发同事发现时区是utc
需要修改成cst
操作如下
tzselect<<EOF
5
9
1
1
EOF
yes |cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
执行过程大致如下
就是选择了Asia > China > Beijing
但是,有的时候通过以上步骤还是解决不了java程序时区问题,java程序读取时间还是不对,甚至System.getProperty("user.timezone")都读不到时区信息,只有System.out.println(java.util.TimeZone.getDefault().getID())可以读到,并且读到的是系统在修改时区的时区信息。主要原因是我们在安装JDK之后发现时间不对才去修改的系统时区,此时jdk已经默认使用系统修改之前的那个时区,已经改不回来了,删掉jdk重装也没用。有两种方法解决这个问题:
tomcat 时区显示不对,重启也没有效
1、使用-Duser.timezone=GMT+08来指定时区;
2、就是修改/etc/profile文件,在文件的末尾添加 export TZ='Asia/Shanghai',然后使用命令source /etc/profile使其生效即可。我喜欢在tomcat 启动脚本最前面再添加source /etc/profile保险一下
ok了 启动正常。