Java Android:从SQLite中减去两个Datetime
我在SQLite的数据库中有这样的数据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.
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;
对不起,我不知道。谢谢你的建议。