Android比较纪元时间和今天日期并输出差异[重复]
Posted
技术标签:
【中文标题】Android比较纪元时间和今天日期并输出差异[重复]【英文标题】:Android Compare epoch time and today date and output the difference [duplicate] 【发布时间】:2017-04-20 17:51:45 【问题描述】:我需要计算到期日差。
我会得到这个纪元时间:
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:格式化过期日期:2016 年 12 月 11 日 (07:00)
RUNTEST:天:17
【问题讨论】:
也是:***.com/q/6218928 的副本。发帖前请先搜索 Stack Overflow。 【参考方案1】:你在这里使用new Date()
String formattedDateNow = sdf.format(new Date());
但计算正在使用
long currentDate = now.get(Calendar.SECOND);
为什么不直接使用
long currentDate = new Date().getTime ();
编辑
get
ting 日历中的 SECONDS 只是获取当前秒数计数器
get 和 set 的字段编号,表示分钟内的秒数。 例如,在晚上 10:04:15.250,SECOND 是 15。
【讨论】:
以上是关于Android比较纪元时间和今天日期并输出差异[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何检查时间戳(纪元时间)是今天还是昨天的[android]