В моем случае приложение устанавливало часовой пояс по умолчанию из Tomcat во время инициализации приложения. Разница, вызванная изменением часовых поясов, соответствовала смещению во времени модификации файла.
Я был удивлен, что любой код в приложении мог выполняться до распаковки, но контейнер Tomcat дает приложению возможность запустить код инициализации до распаковки всех файлов.
Найдите вхождение TimeZone.setDefault()
и попробуйте удалить вызов или переместить вызов позже в последовательности инициализации.
Полезные подсказки:
Этот JSP сообщил мне, что приложение всегда работало с определенным часовым поясом независимо от настроек среды:
<html>
<body>
<h2>Current Timezone</h2>
<% java.util.Date date = new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("zzz"); %>
<%=sdf.format(date)%>
</body>
</html>
В файлах журнала я мог видеть момент изменения часового пояса (четырехчасовой скачок). Это происходит во время загрузки приложения.
Примечание. После установки часовой пояс будет оставаться установленным до перезапуска Tomcat.
Sep 18, 2015 2:34:26 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8443
Sep 18, 2015 2:34:26 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 285 ms
Sep 18, 2015 2:34:26 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Sep 18, 2015 2:34:26 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.24
Sep 18, 2015 2:34:26 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive myWebapp.war
Sep 18, 2015 6:34:30 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Sep 18, 2015 6:34:34 PM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
Sep 18, 2015 6:34:34 PM org.apache.catalina.core.ApplicationContext log
INFO: struts: []: Verifying ModuleConfig for this module
Sep 18, 2015 6:34:34 PM org.apache.catalina.core.ApplicationContext log
INFO: struts: []: Verification of ModuleConfig has been completed
Sep 18, 2015 6:34:34 PM org.apache.catalina.core.ApplicationContext log
INFO: struts: []: Verifying ModuleConfig for this module