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 ();

编辑

getting 日历中的 SECONDS 只是获取当前秒数计数器

get 和 set 的字段编号,表示分钟内的秒数。 例如,在晚上 10:04:15.250,SECOND 是 15。

【讨论】:

以上是关于Android比较纪元时间和今天日期并输出差异[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查时间戳(纪元时间)是今天还是昨天的[android]

android比较2个日期以发现差异

如何从两个纪元时间戳计算 hh:mm:ss 中 hh:mm:ss 的差异?

awk 日期到日志文件中的纪元并打印其他列

从纪元时间戳列中仅检索具有今天日期的记录

如何在 Perl 中将 dd/mm/yyyy 转换为纪元时间?