Если вы хотите быть уверены, что ваше Java-приложение всегда будет с UTC, вы должны переопределить часовой пояс JVM при запуске приложения.
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
Источник
Как программно установить часовой пояс в Java?
Сделав это, вы переопределите любую другую странную конфигурацию часового пояса ваших серверов развертывания, я понимаю, что поведение, которое вы ожидаете здесь.
Этот код должен быть добавлен при запуске приложения. Это зависит от используемой вами платформы.
Для JEE5 + вы можете создать синглтон бустрап EJB:
@Singleton
@Startup
public class StartupBean {
@PostConstruct
private void startup() {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
}
Для Springboot 1.5 + вы можете создать хук в любом месте с помощью этого:
@EventListener(ApplicationReadyEvent.class)
public void doSomethingAfterStartup() {
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}