我有一个包含以下格式的时间的字符串:
"hh:mm tt"
例如,您可以将当前时间表示为“7:04 PM”
如何将其与用户时区中的当前时间进行比较,以查看该时间是小于、等于还是大于当前时间?
您可以转换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()
编辑:
我忘记了,但你知道,但只能肯定 compareTo 返回 -1、1 或 0,所以one.compareTo(two)
当第一个 ist 在第二个之前返回 -1 等。
以下代码详细说明了@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);
}
}