Javaweb项目部署到AWS上的tomcat,项目里面通过new Date()取的时间是UTC的时间 ,即格林威治标准时间,解决办法就是修改服务器的时区,当然不会去修改代码指定时区了。
查看服务器时区,dete -R,果然是UTC(⊙﹏⊙),使用命令tzselect,选对应的数字,如Asia/Calcutta ,然后复制相应的时区文件,替换系统时区文件;cp /usr/share/zoneinfo/Asia/Calcutta /etc/localtime,再date -R查看,时区已经变成修改后的时区,时间也对的上了,重启tomcat,测试发现时间没变,还是UTC时间。试了修改tomcat的catalina.sh指定时区等办法都没有效果,发现/etc/下有个timezone文件,打开一看还是Etc/UTC(我估计修改这个文件就可以,没试),查了一下资料,使用dpkg-reconfigure tzdata命令重新修改时区,修改完打开timezone看了一下内容已经变成Asia/Kolkata了,重启tomcat测试果然时间已经变成当地时间了。
因为是Ubuntu的操作系统,/etc/下才有timezone这个文件,在之前的Redhat上就没有发现。