gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:50:11 24 4
gpt4 key购买 nike

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

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

最佳答案

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

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

测试、冲洗、重复直到对配置满意为止。但是,在您可以动手的所有不同级别上,让它成为一个明确的选择。解析时区与其说是 tomcat 特性不如说是 java 特性。

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

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

关于java - 如何更改 Tomcat 7 的服务器时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28777322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com