java - 两个日期之间的 Android 天数

标签 java android date calendar date-difference

我想比较我的 Android 应用程序的两个日期,但我遇到了一个非常奇怪的问题。

例如:

如果我将 回到过去 日期设置为 127 天前:

this.dateEvent = System.currentTimeMillis() - (127 * 24 * 3600 * 1000)

然后将其与当前日期(之间的天数)进行比较

    Calendar sDate = getDatePart(new Date(this.dateEvent));
    Calendar eDate = getDatePart(new Date(System.currentTimeMillis()));

    int daysBetween = 0;
    while (sDate.before(eDate))
    {
        sDate.add(Calendar.DAY_OF_MONTH, 1);
        daysBetween ++;
    }

    while (sDate.after(eDate))
    {
        eDate.add(Calendar.DAY_OF_MONTH, 1);
        daysBetween ++;
    }

    return daysBetween;

它将返回 22,这完全不是预期的。

我做错了什么还是 Calendar 类有问题?

最佳答案

这是一个两行解决方案:

long msDiff = Calendar.getInstance().getTimeInMillis() - testCalendar.getTimeInMillis();
long daysDiff = TimeUnit.MILLISECONDS.toDays(msDiff);

在本例中,它获取日期“testCalendar”与当前日期之间的天数。

关于java - 两个日期之间的 Android 天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23323792/

相关文章:

java - 同步集合上的同步->性能问题

java - Hibernate 用一个 session.save 保存许多不同的对象

javascript - 在 JS 中获取特定时区的当前日期时间

java - 这段代码中的 "this"实例意味着什么?

java - 如何在 Android/Java 中获取文件目录的 MD5 校验和

android - 避免位图被回收android

OpenCV 中的 Android 按位异或错误

sql-server - 将 SQL Server 数据库而非整个服务器上的日期格式更改为 dd/mm/yyyy

mysql - 如何将mysql日期列的现有内容批量移动到不同类型的新内容?

java - 在从 ArrayList 返回两个对象中的变量之前,如何比较它们?