在两个日期之间进行检查

时间:2018-06-22 15:01:15

标签: java android

我正在创建一种方法,该方法将从存储为TEXT的数据库中获取存储的日期和时间,然后使用该日期/时间在当前时间和当前时间之间加一个。

我遇到的问题是在两个日期和时间之间进行检查,因为我都将它们存储为字符串,所以我不确定如何检查是否在小时之间:

private int mYear, mMonth, mDay, mHour, mMinute;
        listOfAllDateTimesToSendText = gameDetailsFromDatabase.agReturnDateTime();
                calendar = Calendar.getInstance();
                mYear = calendar.get(Calendar.YEAR);
                mMonth = calendar.get(Calendar.MONTH);
                mDay = calendar.get(Calendar.DAY_OF_MONTH);
                mHour = calendar.get(Calendar.HOUR_OF_DAY);
                mMinute = calendar.get(Calendar.MINUTE);
                String currentDateTime =  mYear + "-"+ mMonth + "-" + mDay + " " + mHour + ":" + mMinute + ":00";
                String currentDateTimePlusOneHour =  mYear + "-"+ mMonth + "-" + mDay + " " + mHour + 1 + ":" + mMinute + ":00";
                while(listOfAllDateTimesToSendText.moveToNext()){
                    String dateTimeFromCusor = listOfAllDateTimesToSendText.getString(listOfAllDateTimesToSendText.getColumnIndex(MainAutomateGames.AutomateGamesTable.COLUMN_DATE_TO_SEND_TEXT));
                    if(dateTimeFromCusor == currentDateTime || dateTimeFromCusor == currentDateTimePlusOneHour){

                    }

我一直在寻找SO和网络,但是很多都使用DateDateFormatyyyy-mm-dd等,老实说,我对此感到非常困惑应该用于我当前的情况。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Java的最新版本(Java 8之前的版本),我强烈建议您看一下Joda Time库。无论哪种方式,请考虑执行以下步骤:

  • 首先,了解如何将从数据库中获取的字符串转换为Java日期格式。看看here

  • 您不需要该日历逻辑。它s肿了,您只可以获取当天的实例。

    今天的DateTime =新的DateTime();

  • 了解如何向当前日期的当前实例增加一小时。也许是这样的:

    DateTime plusOneHour =新的DateTime(today.getMillis()+〜找出金额〜);

  • 获取三个日期并比较您想要的日期。如果您进行研究,您将发现很多示例,无论如何使用Joda,如何在Java中比较两个日期。

如果您不知道如何执行其中一些步骤,我们将为您提供帮助。