我有一个Java应用程序,它依赖于系统的日期/时间来检查新的和旧的电子邮件消息。
在检查Java应用程序日志时,我发现服务器时区发生了变化。这导致应用程序无法完成其工作。
服务器时区突然改变的原因是什么?我怎样才能防止将来出现这样的问题。
我使用的是ubuntu服务器8.04。
发布于 2010-10-27 08:21:25
您的应用程序是通过检查Unix时间(time_t,从时代开始的秒)来检查时间,还是只检查人工表达的时间,忽略时区?
如果是后者,我担心你可能犯了编码错误。可以根据进程逐个进程设置和更改时区,就像更改TZ环境变量一样容易;尝试
export TZ=BST
date
export TZ=EST
date请注意,这是一个环境变量,因此可由正在运行的进程的子进程继承。如果java进程碰巧是由设置了TZ的人重新启动的,并且您的启动文件没有强制TZ,那么java将以意外的时区运行。
TZ并不是设置时区的唯一方法;我想提到这一点是为了向您展示Unix是为了让时区成为个人的方便,就像shell提示符或路径一样。如果您需要一个进程具有特定的时区视图,则需要确保它在启动时设置该视图。
https://serverfault.com/questions/195227
复制相似问题