我需要计算到期日差异。
我将得到这个纪元时间:
1481410800(2016年12月6日(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:2016年12月6日(14:42)
RUNTEST:formattedExpiryDate:2016年12月11日(07:00)
RUNTEST:天:17
答案 0 :(得分:0)
您正在使用new Date()
String formattedDateNow = sdf.format(new Date());
但计算正在使用
long currentDate = now.get(Calendar.SECOND);
为什么不使用
long currentDate = new Date().getTime ();
修改强>
get
从日历中获取SECONDS只是获取当前的秒计数器
获取和设置的字段编号,表示分钟内的第二个。 例如,在10:04:15.250 PM,SECOND是15。