首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改Tomcat 7的服务器时区?

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

Stack Overflow用户
提问于 2015-02-28 02:12:32
回答 5查看 71.5K关注 0票数 22

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

我可以在Tomcat的配置文件(server.xmlcatalina.sh或其他什么)中做一些设置吗?因此,如果得到当前时间,将返回指定的TimeZone,如GMT+8Asia/台北

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-02-28 08:19:37

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

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

测试,冲洗,重复,直到配置满意为止。但是要在所有不同的层次上做出明确的选择,你可以把你的手放在上面。解析时区与其说是一个tomcat特性,不如说是一个java。

对于软件的可维护性来说,总是在UTC中存储时间是非常重要的。如果你曾经存储在你的本地时区,计算任何其他时区都会变得一团糟--想想日光节约时间,改变世界不同地区的时区等等。

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

票数 22
EN

Stack Overflow用户

发布于 2015-05-21 11:35:20

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

代码语言:javascript
复制
-Duser.timezone=GMT
票数 16
EN

Stack Overflow用户

发布于 2016-07-11 07:31:48

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28777322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档