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

Sam*_* Su 15 java timezone tomcat tomcat7

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

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

Ola*_*ock 17

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

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

测试,冲洗,重复直至满意配置.但是,你可以在所有不同的级别上明确选择,你可以动手.解析时区相当于java而不是tomcat功能.

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

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


M S*_*mar 14

Tomcat的个人时区将在其启动脚本中以如下形式指定:

-Duser.timezone=GMT
Run Code Online (Sandbox Code Playgroud)