Как создать время из длинного значения с помощью конструктора java.sql.Time

1

У меня есть время в miliseconds, и мне нужно вставить в базу данных Postgresql. Моя проблема в том, что когда я использую конструктор java.sql.Time(), у меня есть правильное время, но с еще одним часом!

Например: если у меня есть 503000 miliseconds, new java.sql.Time(503000) = 01:08:23, когда правильный ответ 00:08:23

Мой код только:

new java.sql.Time(miliseconds);

В чем проблема?? Я кое-что прочитал о часовом поясе. В этом случае, как я могу это решить?

Мне нужно создать объект Date с этими miliseconds и вставить в мою базу данных.

myObject.setDuration (новое время (продолжительность)); // где setDuration имеет параметр Date

заранее спасибо

  • 2
    Возможно, значение, которое вы считываете из TimeStamp, учитывает разницу во времени и / или летнем времени.
  • 0
    Правильно ли вставлено значение в базу данных?
Показать ещё 4 комментария
Теги:
time

2 ответа

2
Лучший ответ

java.sql.Time предназначен для предоставления времени, основанного на текущем часовом поясе, например...

Time ts = new Time(503000);
System.out.println(ts);
System.out.println(ts.getTime());

Выходы

10:08:23
503000

Для меня.

Вы также можете проверить это, используя SimpleDateFormat....

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss Z");
System.out.println(sdf.format(ts));

Какие результаты

10:08:23 +1000
  • 0
    Проблема в том, что мне нужно значение даты. У меня есть время в миллисекундах, и я должен вставить объект Date. На самом деле, я только печатаю, чтобы увидеть, какое значение генерирует
  • 0
    Могу ли я использовать другой класс для генерации объекта Date из значения long (miliseconds) ???
Показать ещё 11 комментариев
0

Ваш выход 00:08:23 основан на вашем местном часовом поясе.

См. Мой пример здесь;

Time t1 = new java.sql.Time(503000);
System.out.println(t1); //print 06:38:23 - my local timezone


SimpleDateFormat sdfm = new SimpleDateFormat("HH:mm:ss");
sdfm.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdfm.format(t1));    //print 00:08:23 - GMT timezone

Ещё вопросы

Сообщество Overcoder
Наверх
Меню