Проблема с часовым поясом в Java / Linux - PullRequest
0 голосов
/ 22 октября 2009

У меня есть приложение, работающее в режиме кластера (два узла) под tomcat / Linux. К сожалению, я заметил, что node1 и node2 имеют разные настройки времени. Когда в оболочке я пробиваю «дата», я получаю на обеих машинах одинаково:

  > date  --rfc-2822
    Thu, 22 Oct 2009 15:00:15 +0200

Я написал небольшую Java-программу, которая печатает только отформатированную дату (и время).

import java.util.Date;
import java.util.TimeZone; 

public class TimeTest {

    public static void main(String args[]) {
    long time = System.currentTimeMillis();
    String millis = Long.toString(time);

    Date date = new Date(time);
    System.out.println("Current time in milliseconds = " + millis + " => " + date.toString());
    System.out.println("Current time zone: " + TimeZone.getDefault().getID());
    }
}

На одном узле я получаю: Текущее время в миллисекундах = 1256215701981 => Четверг 22 13:48:21 GMT + 01: 00 2009 Текущий часовой пояс: GMT + 01: 00

тогда как на другом узле я получаю: Текущее время в миллисекундах = 1256215779203 => Чт 22 октября 14:49:39 CEST 2009 Текущий часовой пояс: Европа / Берлин

Это настройка Linux или настройка Java? В любом случае, как я могу это изменить?

Заранее спасибо!

Луис

1 Ответ

2 голосов
/ 22 октября 2009

Согласно документации источник TimeZone по умолчанию может различаться в зависимости от реализации. В вашем случае кажется, что один сервер использует летнее время, а другой - нет.

Кроме того, этот вопрос может быть полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...