Java Android比较字符串格式的时间

时间:2012-05-24 00:07:17

标签: java android date time compare

我有一个包含以下格式的时间的字符串:

"hh:mm tt"

例如,您可以将当前时间表示为“7:04 PM”

如何将此与用户时区的当前时间进行比较,以确定此时间是否小于,等于或大于当前时间?

2 个答案:

答案 0 :(得分:3)

您可以将String转换为Date

String pattern = "<yourPattern>";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
try {
 Date one = dateFormat.parse(<yourDate>);
 Date two = dateFormat.parse(<yourDate>);

}
catch (ParseException e) {}

它实现了Comparable接口,因此您应该能够将它们与compareTo()

进行比较

修改 我忘了,但你知道但只是肯定比较返回-1,1或0所以one.compareTo(two)在第二个等之前的第一个等时返回-1。

答案 1 :(得分:3)

以下代码详细阐述了@ Sajmon的答案。

public static void main(String[] args) throws ParseException {
    String currentTimeStr = "7:04 PM";

    Date userDate = new Date();
    String userDateWithoutTime = new SimpleDateFormat("yyyyMMdd").format(userDate);

    String currentDateStr = userDateWithoutTime + " " + currentTimeStr;
    Date currentDate = new SimpleDateFormat("yyyyMMdd h:mm a").parse(currentDateStr);

    if (userDate.compareTo(currentDate) >= 0) {
        System.out.println(userDate + " is greater than or equal to " + currentDate);
    } else {
        System.out.println(userDate + " is less than " + currentDate);
    }
}