我正在创建一种方法,该方法将从存储为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和网络,但是很多都使用Date
或DateFormat
或yyyy-mm-dd
等,老实说,我对此感到非常困惑应该用于我当前的情况。
答案 0 :(得分:1)
如果您使用的是Java的最新版本(Java 8之前的版本),我强烈建议您看一下Joda Time库。无论哪种方式,请考虑执行以下步骤:
首先,了解如何将从数据库中获取的字符串转换为Java日期格式。看看here。
您不需要该日历逻辑。它s肿了,您只可以获取当天的实例。
今天的DateTime =新的DateTime();
了解如何向当前日期的当前实例增加一小时。也许是这样的:
DateTime plusOneHour =新的DateTime(today.getMillis()+〜找出金额〜);
获取三个日期并比较您想要的日期。如果您进行研究,您将发现很多示例,无论如何使用Joda,如何在Java中比较两个日期。
如果您不知道如何执行其中一些步骤,我们将为您提供帮助。