如何将getTime转换为秒?

时间:2011-08-10 08:48:06

标签: java jdbc timestamp

请你帮忙解决问题:

我定义了一个变量:

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

它会读取值7:15:00

如何将此类型转换为秒?

6 个答案:

答案 0 :(得分:9)

调用getTime获取自1970年1月1日以来的毫秒数。除以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);

答案 1 :(得分:3)

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;

答案 2 :(得分:1)

尝试:

from_time.getTime() / 1000

这可能起作用:

  

日期组件应设置为1970年1月1日的“零纪元”值,不应访问。

这意味着日期部分始终是纪元日,这意味着Time实例由自当天开始以来的毫秒数表示。

答案 3 :(得分:1)

java.sql.Time继承自java.util.Date,该方法的getTime()方法返回自1970年1月1日00:00:00 GMT以来的毫秒数。

所以from_time.getTime()/1000应该做到这一点。

答案 4 :(得分:0)

更清洁的方式是 Time from_time = Math.round(rs.getTime("nfrm_time")/1000);

答案 5 :(得分:-1)

获得毫秒:

long ms = from_time.getTime();