我需要獲取當前日期和將來的日期之間的區別,以android,天,小時,分鐘和秒爲單位。如果當前的日期和時間是17/05/2012 03:53:00,未來的日期是18/05/2012 04:55:00。Android中的日期,時間,分鐘和秒數獲取日期和時間差異
我需要顯示差作爲剩餘時間=天:1,小時:1,和分鐘2.
任何形式的幫助將不勝感激。提前謝謝了。
問候, Munazzaķ
我需要獲取當前日期和將來的日期之間的區別,以android,天,小時,分鐘和秒爲單位。如果當前的日期和時間是17/05/2012 03:53:00,未來的日期是18/05/2012 04:55:00。Android中的日期,時間,分鐘和秒數獲取日期和時間差異
我需要顯示差作爲剩餘時間=天:1,小時:1,和分鐘2.
任何形式的幫助將不勝感激。提前謝謝了。
問候, Munazzaķ
您可以減去兩個日期,以及計算出的差異。有點像這樣:
long difference = calendar.getTimeInMillis()-currentTime;
long x = difference/1000;
seconds = x % 60;
x /= 60;
minutes = x % 60;
x /= 60;
hours = x % 24;
x /= 24;
days = x;
你可以減去你已計算的時間。你得到的時間,得到的休息,做的分鐘等。
使用Date
類。
使用getTime()
方法,您可以在兩個日期的時間(以毫秒爲單位)。 然後,您可以創建另一個Date
對象,其中包含兩個日期之間相減的結果的毫秒數。 自第一個Date
以來,您將擁有天數,小時數和分鐘數。
你可以做這樣
c_date=18/05/2012 04:55:00. and saved_date=17/05/2012 03:53:00
long diffInMillisec = c_date.getTime() -saved_date.getTime();
long diffInSec = TimeUnit.MILLISECONDS.toSeconds(diffInMillisec);
seconds = diffInSec % 60;
diffInSec/= 60;
minutes =diffInSec % 60;
diffInSec /= 60;
hours = diffInSec % 24;
diffInSec /= 24;
days = diffInSec;`
我最近實施了同樣的事情,我用JodaTime。你可以從這裏下載JAR並將其包含在你的Android應用:http://joda-time.sourceforge.net/
//Create your taget date
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, 2012);
cal.set(Calendar.MONTH, Calendar.JULY);
cal.set(Calendar.DATE, 15);
cal.set(Calendar.HOUR_OF_DAY, 8);
Date startDate = cal.getTime();
//Use JodaTime to calculate difference
Period period = getTimePassedSince(startDate);
//Extract values and display
daysTV.setText("" + Math.abs(period.getDays()));
hoursTV.setText("" + Math.abs(period.getHours()));
minsTV.setText("" + Math.abs(period.getMinutes()));
secsTV.setText("" + Math.abs(period.getSeconds()));
...
public static Period getTimePassedSince(Date initialTimestamp){
DateTime initDT = new DateTime(initialTimestamp.getTime());
DateTime now = new DateTime();
Period p = new Period(initDT, now, PeriodType.dayTime()).normalizedStandard(PeriodType.dayTime());
return p;
}
這只是給不同單位的整個持續時間的長短,而不是天數,小時,和剩餘的分鐘的故障OP意味着。 – santafebound