Java ResultSet, как к getTimeStamp в UTC

Объем блокировки в Вашем примере находится в неправильном месте - это должно быть в объеме свойства класса 'MyObject', а не это - контейнер.

, Если MyObject мой класс объекта просто используется для содержания данных, которые один поток хочет записать в, и другой (поток UI) для чтения с того времени Вас, возможно, не нуждался бы в методе set вообще и создал бы его однажды.

Также рассматривают, если размещение блокировок на уровне свойства является уровнем записи гранулярности блокировки; если больше чем одно свойство могло бы быть записано в то, для представления состояния транзакции (например: общие заказы и общий вес), затем могло бы быть лучше иметь блокировку на уровне MyObject (т.е. блокировку (myObject. SyncRoot)...)

12
задан kal 24 September 2009 в 00:32
поделиться

2 ответа

Ваш экземпляр DateFormat, скорее всего, отображает значение по местному времени. При отображении вашего значения попробуйте следующее:

java.util.Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME);
cal.setTime(ts);

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss z");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(sdf.format(cal.getTime()));

EDIT: к вашему комментарию:

Что, если я использую GMT, будет ли это проблемой в SimpleDateFormat

SimpleDateFormat может использовать общие часовые пояса (GMT + / - n), RFC822 и текст («если у них есть имена», как указано в JavaDoc - см. этот пост для информации об именах).

6
ответ дан 2 December 2019 в 04:09
поделиться
java.util.Calendar cal = Calendar.getInstance(); 
cal.setTimeZone(TimeZone.getTimeZone("UTC")); 
java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME, cal); 

Это должно помочь!

30
ответ дан 2 December 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: