如何更改Tomcat 7 的服务器时区?
How to change Tomcat 7's server timezone?
我的应用程序部署在美国洛杉矶的 Debian vps 中。所以像 new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date())
这样的代码将 return America/Los 洛杉矶的当前时间。
我可以在 Tomcat 的配置文件中做一些设置(server.xml
或 catalina.sh
还是什么?)以便获取当前时间 return 指定的时区比如 GMT+8 或 Asia/Taipei ???
对于可以设置时区的所有不同位置,(通常)最好在处理时间时明确设置时区。是的,你的服务器在洛杉矶,但你的用户在哪里?
由于显式处理时区会使您的应用程序变得更复杂(但也更正确、更不令人惊讶、更难测试),下一个最好的办法是显式地让 tomcat (java) 知道您的服务器时钟设置为哪个时区。注意:有一些级别可以设置:将您的服务器时钟设置为 UTC,将您的服务器 OS 配置为 PST,然后让 java 知道您的服务器所在的时区,例如在 setenv.sh
中执行 CATALINA_OPTS="$CATALINA_OPTS -Duser.timezone=America/Los_Angeles"
(或任何您的时区)为您的时区配置 Java。
测试、冲洗、重复直到对配置满意为止。但是,在您可以动手的所有不同级别上,让它成为一个明确的选择。解析时区是 java 而不是 tomcat 功能。
始终以 UTC 格式存储时间对于软件的可维护性非常重要。如果您曾经在当地时区存储,计算任何其他时区都会一团糟——想想夏令时、世界不同地区时区的变化等。
所以:将您的服务器设置为UTC,然后获取当前时间,检查它是否正确。出于显示目的,您可以使用(用户的)本地时区(例如太平洋标准时间),但为了存储和计算,强烈建议使用 UTC。
Tomcat 的个人时区将在其启动脚本中以如下形式指定:
-Duser.timezone=GMT
对于 Windows - 转到 catalina.bat 并添加 CATALINA_OPTS 属性(在开始时)。
:开始
转移
设置 CATALINA_OPTS=-Duser.timezone=America/Denver
如果你想从 eclipse 改变它... 运行 --> 运行 配置 --> Apache tomcat --> Tomcat 服务器 -- > VM 参数添加 -Duser.timezone=America/Montreal
在 Linux 中,只需在 setenv.sh
中添加以下行,即 CATALINA_HOME/bin/
。
CATALINA_OPTS="-Duser.timezone=Asia/{your zone}"
我的应用程序部署在美国洛杉矶的 Debian vps 中。所以像 new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date())
这样的代码将 return America/Los 洛杉矶的当前时间。
我可以在 Tomcat 的配置文件中做一些设置(server.xml
或 catalina.sh
还是什么?)以便获取当前时间 return 指定的时区比如 GMT+8 或 Asia/Taipei ???
对于可以设置时区的所有不同位置,(通常)最好在处理时间时明确设置时区。是的,你的服务器在洛杉矶,但你的用户在哪里?
由于显式处理时区会使您的应用程序变得更复杂(但也更正确、更不令人惊讶、更难测试),下一个最好的办法是显式地让 tomcat (java) 知道您的服务器时钟设置为哪个时区。注意:有一些级别可以设置:将您的服务器时钟设置为 UTC,将您的服务器 OS 配置为 PST,然后让 java 知道您的服务器所在的时区,例如在 setenv.sh
中执行 CATALINA_OPTS="$CATALINA_OPTS -Duser.timezone=America/Los_Angeles"
(或任何您的时区)为您的时区配置 Java。
测试、冲洗、重复直到对配置满意为止。但是,在您可以动手的所有不同级别上,让它成为一个明确的选择。解析时区是 java 而不是 tomcat 功能。
始终以 UTC 格式存储时间对于软件的可维护性非常重要。如果您曾经在当地时区存储,计算任何其他时区都会一团糟——想想夏令时、世界不同地区时区的变化等。
所以:将您的服务器设置为UTC,然后获取当前时间,检查它是否正确。出于显示目的,您可以使用(用户的)本地时区(例如太平洋标准时间),但为了存储和计算,强烈建议使用 UTC。
Tomcat 的个人时区将在其启动脚本中以如下形式指定:
-Duser.timezone=GMT
对于 Windows - 转到 catalina.bat 并添加 CATALINA_OPTS 属性(在开始时)。
:开始 转移 设置 CATALINA_OPTS=-Duser.timezone=America/Denver
如果你想从 eclipse 改变它... 运行 --> 运行 配置 --> Apache tomcat --> Tomcat 服务器 -- > VM 参数添加 -Duser.timezone=America/Montreal
在 Linux 中,只需在 setenv.sh
中添加以下行,即 CATALINA_HOME/bin/
。
CATALINA_OPTS="-Duser.timezone=Asia/{your zone}"