【发布时间】:2018-12-07 11:23:27
【问题描述】:
我正在循环进行时间比较。所以它会检查我以HH:mm 格式保存的所有时间,然后执行其他指令。
如果我尝试比较00:00 和09:59 之间的时间,它会给我错误。
我能做什么?
for(int contatore = 0; lista_allarmi.moveToNext() ; contatore++) {
Date ORANOTIFICA;
ID_M = lista_allarmi.getInt(0);
NOME_M = lista_allarmi.getString(1);
TIPO_M = lista_allarmi.getString(2);
String ora_notifica = lista_allarmi.getString(3);
parts = ora_notifica.split(":");
hrs = Integer.parseInt(parts[0]); // ore
min = Integer.parseInt(parts[1]); // minuti
ora_allm.set(Calendar.HOUR_OF_DAY,hrs);
ora_allm.set(Calendar.MINUTE, min);
ora_allm.set(Calendar.SECOND, 0);
ora_allm_piut = ora_allm;
ora_allm_piut.add(Calendar.MINUTE, 5);
hrs = ora_allm_piut.get(Calendar.HOUR_OF_DAY);
min = ora_allm_piut.get(Calendar.MINUTE);
HPT = String.valueOf(hrs);
MPT = String.valueOf(min);
ORARNPT = HPT + ":" + MPT; ORANOTIFICAPIUTIMER;
Date ora_attuale = Calendar.getInstance().getTime();
Date ORARIOATT;
i = new Intent(getContext(), AlarmReceiver.class);
i.putExtra("id", ID_M);
i.putExtra("NMM", NOME_M);
i.putExtra("TPM", TIPO_M);
pi = PendingIntent.getBroadcast(getContext(), contatore, i, PendingIntent.FLAG_UPDATE_CURRENT);
if(LocalTime.now().isAfter(parse(ora_notifica)) && LocalTime.now().isBefore(parse(ORARNPT))) {
//A
} else {
//B
}
}
【问题讨论】:
-
你能展示一下
parse(ora_notifica)的作用吗? -
感谢您发布 一些 代码,但这不足以让人们快速发现错误,而且您也没有包含您收到的错误。如果是异常,请包含完整的堆栈跟踪。对于代码,创建一个minimal, complete and verifiable example 并在此处发布。
-
你试过调试你的代码吗?
-
lista_allarmi.moveToNext()在for循环中看起来像是一个非常奇怪的限制。 -
在您的最后一条评论中,您引用了 java.time 类中的解析错误,但我在您的源代码中没有看到 java.time 解析上面的代码。在 Stack Overflow 上发帖之前,请多加注意,写得彻底,写得好。花时间编写简短的人为示例代码,而不是剪切和粘贴您的实时代码。
标签: java date parsing time localtime