Java Android:从SQLite中减去两个Datetime

Java Android:从SQLite中减去两个Datetime,java,android,sqlite,datetime,Java,Android,Sqlite,Datetime,我在SQLite的数据库中有这样的数据 ID COLUMN_SBEGIN COLUMN_SEND 1 2015-10-08 22:00:00 2015-10-09 08:00:00 我想知道从22:00:00到08:00:00的时间。你知道吗 这是我的密码 public void sleepProcess() throws ParseException { cursor = getContentResolver().query(ProviderSleep.

我在SQLite的数据库中有这样的数据

ID   COLUMN_SBEGIN         COLUMN_SEND
1    2015-10-08 22:00:00   2015-10-09 08:00:00
我想知道从
22:00:00
08:00:00
的时间。你知道吗

这是我的密码

public void sleepProcess() throws ParseException {
    cursor = getContentResolver().query(ProviderSleep.CONTENT_URI, Helper.ALL_SLEEP,null,null,null,null);
    cursor.moveToFirst();
    String temp = cursor.getString(cursor.getColumnIndex(Helper.COLUMN_SBEGIN)); //get the time data
    String temp2 = cursor.getString(cursor.getColumnIndex(Helper.COLUMN_SEND)); //get the time data

    java.text.DateFormat df = new java.text.SimpleDateFormat("hh:mm:ss");
    java.util.Date t1 = df.parse(temp);
    java.util.Date t2 = df.parse(temp2);
    long sumSleep = t2.getTime() - t1.getTime();

    //sumSleep should in Hours(Integer)

    if(sumSleep < 8){
        sleep.setImageResource(R.drawable.ic_close);
    }else{
        sleep.setImageResource(R.drawable.ic_check);
    }

}
public void sleepProcess()引发异常{
cursor=getContentResolver().query(ProviderSleep.CONTENT\u URI,Helper.ALL\u SLEEP,null,null,null);
cursor.moveToFirst();
String temp=cursor.getString(cursor.getColumnIndex(Helper.COLUMN_SBEGIN));//获取时间数据
String temp2=cursor.getString(cursor.getColumnIndex(Helper.COLUMN_SEND));//获取时间数据
java.text.DateFormat df=new java.text.simpleDataFormat(“hh:mm:ss”);
java.util.datet1=df.parse(temp);
java.util.datet2=df.parse(temp2);
long-sumSleep=t2.getTime()-t1.getTime();
//sumSleep应以小时为单位(整数)
如果(睡眠<8){
sleep.setImageResource(R.drawable.ic_close);
}否则{
sleep.setImageResource(R.drawable.ic_检查);
}
}

这将以毫秒为单位显示差异:

long sumSleep = t2.getTime() - t1.getTime();
因此,根据到
Java5
的小时转换:

TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(sumSleep))
或者,使用
Java4
或更少

int hours   = (int) ((sumSleep / (1000*60*60)) % 24);

变量
sumleep
包含
t1
t2
之间的差异(以毫秒为单位)。所以你只需要把它转换成小时

long millisInHour = 1000 * 60 * 60;
long elapsedHours = sumSleep / millisInHour;

对不起,我不知道。谢谢你的建议。