2012-10-01 250 views
2

我想計算當天(11 am,2012年10月1日)和當天午夜時間(11 pm 59 m 59s,1)的時間差(以毫秒爲單位)十月,2012年計算當前時間和未來時間之間的時差

我已經試過這

Calendar cal = Calendar.getInstance(); 
    cal.add(Calendar.SECOND, 59); 
    cal.add(Calendar.HOUR, 23); 
    cal.add(Calendar.MINUTE, 59); 
     cal.getTime().getTime() - today.getTime(); 
今天

這裏是當前日期。

但是當我打印CAL和今天,如果86400大約一天時間差的長期價值。

+1

使用cal.set代替CAL它與當前實例進行比較。 add –

+2

使用.set(),.add()或.roll()您需要調用.get()以使更改持久化。因此,在每個add()之間添加一個cal.get()可能會解決它。 –

+0

...來自http://developer.android.com/reference/java/util/Calendar.html –

回答

9

使用cal.set()而不是cal.add()

Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.SECOND, 59); 
cal.set(Calendar.HOUR, 23); 
cal.set(Calendar.MINUTE, 59); 

long diff = cal.getTime().getTime() - today.getTime(); 
5

您可以將日期設置爲新創建的日曆實例.. ,然後使用getTimeInMillis()

Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.HOUR, 23); 
cal.set(Calendar.MINUTE, 59); 
cal.set(Calendar.SECOND, 59); 
cal.set(Calendar.DATE, 1); 
cal.set(Calendar.MONTH, 9); 
cal.set(Calendar.YEAR, 2012); 

long difference = cal.getTimeInMillis() - Calendar.getInstance().getTimeInMillis(); 
+1

爲什麼設置硬編碼的'DATE','MONTH'和'YEAR'? – Eric

+0

從OP張貼的問題中獲得了答案。他想要10月1日,只是舉了一個例子。 –

相關問題