Как конвертировать getTime в секунды? - PullRequest
4 голосов
/ 10 августа 2011

Можете ли вы помочь в этом вопросе:

Я определил переменную:

Time from_time = rs.getTime("nfrm_time");

и он будет читать значения 7: 15: 00

Как перевести этот тип в секунды?

Ответы [ 6 ]

9 голосов
/ 10 августа 2011

Позвоните getTime, чтобы узнать количество миллисекунд с 1 января 1970 года. Разделите на 1000, чтобы получить его в секундах:

long unixTime = from_time.getTime() / 1000;

Чтобы узнать количество секунд с 00:00 текущего дня, используйте

Calendar c = Calendar();
c.setTime(from_time);
long daySeconds = (c.get(Calendar.SECONDS) +
                   c.get(Calendar.MINUTES) * 60 +
                   c.get(Calendar.HOURS) * 3600);
3 голосов
/ 10 августа 2011

long seconds = rs.getTime("nfrm_time").getTime() / 1000

Вот объяснение:

rs.getTime("nfrm_time") возвращает java.sql.Time, что на самом деле является подклассом java.util.Date.

java.util.Date.getTime() возвращаетвремя в миллисекундах, которое мы делим на 1000, чтобы получить секунды.

Примечание:

Если вместо этого вам нужна длительность,

Calendar cal = Calendar.getInstance();

cal.setTime(rs.getTime("nfrm_time")); // set to the time returned by resultset
cal.set(0, 0, 0); // reset the year, month and date fields

Calendar cal2 = Calendar.getInstance();

cal2.set(0, 0, 0, 0, 0, 0); // reset all the fields, including time

long duration = ((cal.getTimeInMillis() - cal2.getTimeInMillis()) / 1000) + 1;
1 голос
/ 10 августа 2011

java.sql.Time наследуется от java.util.Date, у которого есть метод getTime (), который возвращает количество миллисекунд с 1 января 1970 года, 00:00:00 по Гринвичу.

Итак from_time.getTime()/1000 должен сделать трюк.

1 голос
/ 10 августа 2011

Попробуйте:

from_time.getTime() / 1000

Это может работать с:

Компоненты даты должны быть установлены на значение «нулевой эпохи» от 1 января 1970 года и не должны быть доступны.

Это означает, что часть даты всегда является эпохой днем, что означает, что экземпляр Time представлен числом миллисекунд с начала дня.

0 голосов
/ 04 июня 2016

Более чистый путь Time from_time = Math.round(rs.getTime("nfrm_time")/1000);

0 голосов
/ 10 августа 2011

Чтобы получить миллисекунды:

long ms = from_time.getTime();
...