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



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

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

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

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

测试、冲洗、重复,直到对配置满意为止。但是,在所有不同的级别上都要明确选择它,你可以设置它。解析时区与其说是一个tomcat功能,不如说是一种java功能。

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

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

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

-Duser.timezone=GMT

在Linux中,只需在setenv.sh中添加位于CATALINA_HOME/bin/的以下行。CATALINA_OPTS="-Duser.timezone=Asia/{your zone}"

对于Windows-转到catalina.bat并添加catalina_OPS属性(在启动下)。

:do启动转移set CATALINA_OPTS=-黄昏时区=美国/丹佛

如果您想从eclipse更改它。。。运行-->运行配置-->Apache tomcat-->tomcat Server-->VM arguments add-Duser.timezone=America/Montreal

相关内容

  • 没有找到相关文章

最新更新