我正在创建一种方法,该方法将从存储为文本的数据库中获取存储的日期和时间,然后使用该日期/时间在当前时间和当前时间加一之间进行检查。
我遇到的问题是在两个日期和时间之间进行检查,因为我已将它们全部存储为字符串,我不确定如何检查它是否在小时之间:
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 和网络,但其中很多都使用 Date
、DateFormat
或 yyyy-mm-dd
等等,老实说,我对我应该在当前情况下使用哪个感到很困惑。
最佳答案
如果您使用的是最新版本的 Java(Java 8 之前的版本),我强烈建议您查看 Joda Time 库。无论哪种方式,请考虑执行以下步骤:
首先,了解如何将从数据库中获取的字符串转换为 Java 日期格式。看看here .
您不需要那个日历逻辑。它很臃肿,您只能获取当天的实例。
今天的 DateTime = new DateTime();
了解如何将一小时添加到今天日期的当前实例。也许是这样的:
DateTime plusOneHour = new DateTime(today.getMillis() + ~求金额~);
获取三个日期并比较您想要的内容。如果您进行研究,您会发现很多关于如何在 Java 中比较两个日期的示例,无论是否使用 Joda。
如果您不知道如何执行其中的某些步骤,我们随时为您提供帮助。
关于java - 检查两个日期之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50990751/