“我试着比较两次”hh:mm:ss a“格式。但它并没有真正起作用。我用谷歌搜索但找不到合适的答案。抱歉因为我是编程的新手。“
我尝试比较这样的时间:
String strSQL = "SELECT * FROM " + TABLE_SCHEDULE + " WHERE lecturer_id=? AND schedule_day=? AND schedule_endtime > ?";
schedule_endtime>吗
然而,比较忽略了导致结果变为如此的AM / PM: 的例如。 12:00:00 PM大于02:00:00 PM。
希望大家都能给出一些提示或提供一些解决方案。欣赏它。
答案 0 :(得分:5)
不是比较格式化的字符串,而是以毫秒为单位比较值。看看convert the string back to date:
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
String dateInString = "7-Jun-2013";
try {
Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
然后,一旦你有两个日期,你可以比较它们:
boolean before = someDate.before(anotherDate);
或
boolean after = someDate.after(anotherDate);
甚至
someDate.getTime() < anotherDate.getTime();
旁注:当我存储日期时,我喜欢只存储毫秒值和时区。这样你就不用担心这样的事了。
答案 1 :(得分:0)
在SQLite数据库中,您将日期存储为字符串,而不是日期,因为在SQLite中不存在日期类型(https://www.sqlite.org/datatype3.html)。
您有两个选择:将列类型更改为INTEGER类型并将de date存储为数字(然后您可以比较毫秒)或按原样获取实体,使用String解析Date类型,创建SimpleDateFormat给定的格式,然后进行比较。