Android - 时间比较“hh:mm:ss a”格式

时间:2015-08-07 17:47:45

标签: android time

“我试着比较两次”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。

希望大家都能给出一些提示或提供一些解决方案。欣赏它。

2 个答案:

答案 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给定的格式,然后进行比较。