要运行我的 Web 应用,我需要在 MacBook 上将时区设置为 UTC。我可以通过打开 Konsole 并输入以下代码来临时执行此操作:
sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime
但是,当我重新启动机器时,我的时区恢复正常!
有什么建议吗?
编辑:'Celada' 对此问题的回答暗示我可以将我的服务器设为 UTC。我正在使用 Apache Tomcat 7。除了 Celada 的回复外,我如何将其设为 UTC?
更新 - 4 月 3 日:根据 Celada 的回复,我尝试SetEnv TZ UTC
在 startup.sh 顶部添加。这似乎没有什么不同。经过一番研究,我尝试添加export JAVA_OPTS="-Duser.timezone=UTC"
到 startup.sh,但这也没有效果。我是否将正确的命令添加到了正确的文件?
答案1
我认为如果您使用控制面板来更改时区,则每次重新启动时您的更改都不会被取消。
如果您担心每次重新启动时时区都会恢复,那么听起来您想使更改永久而不是暂时的,那么在这种情况下,为什么不直接使用控制面板呢?
如果此更改仅针对您的 Web 应用程序,那么为什么不只更改 Web 服务器的时区,而不是更改计算机上的全局时区?这应该很简单,只需添加
SetEnv TZ UTC
到 的结尾/etc/apache2/httpd.conf
。
如果这不起作用,可能是因为TZ
需要设置变量前Apache 无需设置即可启动经过Apache。在这种情况下,下面的方法更复杂,但肯定有效:
编辑
/System/Library/LaunchDaemons/org.apache.httpd.plist
添加线条
<key>EnvironmentVariables</key> <dict> <key>TZ</key> <string>UTC</string> </dict>
</dict>
就在靠近底部的那一行之前重新加载该配置
launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist launchctl load /System/Library/LaunchDaemons/org.apache.httpd.plist
所有这些都需要以 root 身份完成。
答案2
如果符号链接有效,您可以在启动时重新创建该符号链接。请参阅创建 launchd 作业
答案3
好了。我已成功将 tomcat 时区设置为 UTC。在 bin/catalina.sh 中,我添加了CATALINA_OPTS=-Duser.timezone=UTC