如何更改 Tomcat 7 的服务器时区?

我的应用程序部署在美国洛杉矶的 Debian vps 中.所以像 new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) 这样的代码将返回美国/洛杉矶的当前时间.

我可以在 Tomcat 的配置文件(server.xml 或 catalina.sh 还是什么?)中进行一些设置,以便获取当前时间将返回指定的 TimeZone,如 GMT+8亚洲/台北 ???

WANGpingping456 回答:如何更改 Tomcat 7 的服务器时区?

对于所有可以设置时区的不同位置,在处理时间时(通常)总是最好明确设置时区.是的,您的服务器在洛杉矶,但您的用户在哪里?

由于显式处理时区会使您的应用程序更复杂(但也更正确、更少令人惊讶、更难测试),因此下一个最好的方法是显式让 tomcat (java) 知道您的服务器时钟设置为哪个时区.小心:有一些级别可以设置:将您的服务器时钟设置为 UTC,将您的服务器操作系统配置为 PST,然后让 java 知道您的服务器所在的时区,例如在 setenv.sh 中执行 CATALINA_OPTS="$CATALINA_OPTS -Duser.timezone=America/Los_Angeles" (或任何您的时区)为您的时区配置 Java.

测试、冲洗、重复,直到对配置满意为止.但是,让它成为您可以着手的所有不同级别的明确选择.解析时区是 java 而不是 tomcat 的功能.

始终以 UTC 存储时间对于软件的可维护性非常重要.如果你曾经存储在你当地的时区,计算任何其他时区将是一团糟——想想夏令时、世界不同地区的时区变化等等.

所以:将您的服务器设置为 UTC,然后获取当前时间,检查它是否正确.出于显示目的,您可以使用(用户的)本地时区(例如 PST),但对于存储和计算,强烈建议使用 UTC.

这篇关于如何更改 Tomcat 7 的服务器时区?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持前端之家!

本文链接:https://www.f2er.com/3175528.html

大家都在问