Передача текущего момента в Лондоне с Java в базу данныхJAVA

Программисты JAVA общаются здесь
Anonymous
Передача текущего момента в Лондоне с Java в базу данных

Сообщение Anonymous »

Я вношу изменения в код, который работает в Unix-системе. Он устанавливает время для поля в базе данных на основе текущей даты и времени Лондона.

Я использую следующие методы:

Код: Выделить всё

private static Date getCurrentTime() {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd-kk:mm:ss.SSS");
format.setTimeZone(TimeZone.getTimeZone("Europe/London"));

Calendar cal = Calendar.getInstance();
Date currentDate = cal.getTime();

try {
return format.parse(format.format(currentDate));
} catch (ParseException e) {
log.error("Error occured while parsing date-->" + e.getMessage());
}
return new Date();
}

private String getStringFromDate(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd-kk:mm:ss.SSS");
return sdf.format(date);
}
Когда сообщение обрабатывается Java-приложением в производственном блоке Unix (для которого установлено время Северной Америки, поскольку там оно размещено), то при его вставке в базу данных оно отстает на час (не установлено значение BST).

Если я запускаю тот же код в Eclipse на своем рабочем столе, я получаю правильное время в базе данных.

Я не уверен, что может быть причиной этой проблемы, и надеялся, что кто-нибудь сможет помочь.

Спасибо

edit*** на второй взгляд, даже файлы журналов в окне unix отстают на час, поэтому я предположим, что именно unix вызывает проблему, противоположную моему коду.

Подробнее: https://stackoverflow.com/questions/177 ... o-database

Вернуться в «JAVA»