请你帮忙解决问题:
我定义了一个变量:
Time from_time = rs.getTime("nfrm_time");
它会读取值7:15:00
如何将此类型转换为秒?
答案 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();