2016-12-06 26 views
-1

我需要計算到期日期的差異。Android比較新紀元時間和今天日期並輸出差異

我會得到這個信號出現時間:

1481410800(06日 - 12月-2016(14:42))

現在我要計算天,直到到期日(1481410800)

Calendar now = Calendar.getInstance(); 
     SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy (HH:mm)", Locale.getDefault()); 


//Expiry Date 
     long unixSecondsExpiry = 1481410800; //unixSeconds 
     Date expiryDate = new Date(unixSecondsExpiry*1000L); 



     long currentDate = now.get(Calendar.SECOND); 

     long diff = unixSecondsExpiry - currentDate; 
     long days = diff/(24l * 60l * 60l * 1000l); 




     String formattedExpiryDate = sdf.format(expiryDate); 
     String formattedDateNow = sdf.format(new Date()); 

     Log.w("RUNTEST", "formattedDateNow: " + formattedDateNow); 
     Log.w("RUNTEST", "formattedExpiryDate: " + formattedExpiryDate); 
     Log.w("RUNTEST", "days: " + days); 

我一直得到17天,但它應該是5天,直到到期。

的runTest:formattedDateNow:06-DEC-2016(14時42分)

的runTest:formattedExpiryDate:11-DEC-2016(07:00)

的runTest:天:17

+0

也是以下的副本:http://stackoverflow.com/q/6218928。請在發佈之前搜索堆棧溢出。 –

回答

0

這裏使用的是new Date()

String formattedDateNow = sdf.format(new Date()); 

但是計算使用

long currentDate = now.get(Calendar.SECOND); 

爲什麼不直接使用

long currentDate = new Date().getTime(); 

編輯

get婷從日曆秒剛開當前秒計數器

外地號碼在一分鐘內得到並設置表示秒。例如,在10:04:15.250 PM,SECOND是15.