国外服务器部署springboot项目出现时区问题
查看当前服务器下的时间:[root@swk-204 ~]# date Fri Jan 25 19:28:28 CST 2019 [root@swk-204 ~]# date "+%Y-%m-%d %H:%M:%S" 2019-01-25 19:28:36 [root@swk-204 ~]# 问题解决
设置操作系统的时区:[root@engine ~]# tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent or ocean. 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean 7) Australia 8) Europe 9) Indian Ocean 10) Pacific Ocean 11) none - I want to specify the time zone using the Posix TZ format. #? 5 Please select a country. 1) Afghanistan 18) Israel 35) Palestine 2) Armenia 19) Japan 36) Philippines 3) Azerbaijan 20) Jordan 37) Qatar 4) Bahrain 21) Kazakhstan 38) Russia 5) Bangladesh 22) Korea (North) 39) Saudi Arabia 6) Bhutan 23) Korea (South) 40) Singapore 7) Brunei 24) Kuwait 41) Sri Lanka 8) Cambodia 25) Kyrgyzstan 42) Syria 9) China 26) Laos 43) Taiwan 10) Cyprus 27) Lebanon 44) Tajikistan 11) East Timor 28) Macau 45) Thailand 12) Georgia 29) Malaysia 46) Turkmenistan 13) Hong Kong 30) Mongolia 47) United Arab Emirates 14) India 31) Myanmar (Burma) 48) Uzbekistan 15) Indonesia 32) Nepal 49) Vietnam 16) Iran 33) Oman 50) Yemen 17) Iraq 34) Pakistan #? 9 Please select one of the following time zone regions. 1) east China - Beijing, Guangdong, Shanghai, etc. 2) Heilongjiang (except Mohe), Jilin 3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc. 4) most of Tibet & Xinjiang 5) west Tibet & Xinjiang #? 1 The following information has been given: China east China - Beijing, Guangdong, Shanghai, etc. Therefore TZ="Asia/Shanghai" will be used. Local time is now: Fri Jan 25 15:10:18 CST 2019. Universal Time is now: Fri Jan 25 07:10:18 UTC 2019. Is the above information OK? 1) Yes 2) No #? 1 You can make this change permanent for yourself by appending the line TZ="Asia/Shanghai"; export TZ to the file ".profile" in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts: Asia/Shanghai [root@engine ~]# 调整时区文件到对应目录
备份当前的时区配置[root@engine ~]# mv /etc/localtime /etc/localtime-old
替换系统时区文件[root@engine ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者创建链接文件[root@engine ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改clock系统配置文件/etc/sysconfig/clock为如下内容[root@swk-204 ~]# cat /etc/sysconfig/clock ZONE="Asia/Shanghai" UTC=false #设置为false,硬件时钟不于utc时间一致 ARC=false [root@swk-204 ~]#
设置操作系统环境变量TZ
在/etc/profile或~/.bashrc文件中设置环境变量TZexport TZ="Asia/Shanghai"
或者TZ="Asia/Shanghai"; export TZ
通过source命令即可完成设置JAVA进程调整时区
AVA硬编码import java.util.TimeZone; import javax.annotation.PostConstruct; import org.springframework.stereotype.Component; @Component public class TimeZoneStartup { /** * 设置时区 */ @PostConstruct public void init(){ TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); } }
按照以上方法操作后,可以获取指定的时区