java - 如何比较保存为字符串值的java中的两个不同时间值?
我有这两个值:
String startTime = "11:23";
String endTime = "22:22";
现在对我的应用程序进行评估很重要,这两个值中的哪一个高于另一个。此代码是不可能的,我只能将这两个时间值保存为字符串:
if(startTime > endTime){
// do some stuff
} else {
// do other stuff
}
java - 如何比较保存为字符串值的java中的两个不同时间值?
我有这两个值:
String startTime = "11:23";
String endTime = "22:22";
现在对我的应用程序进行评估很重要,这两个值中的哪一个高于另一个。此代码是不可能的,我只能将这两个时间值保存为字符串:
if(startTime > endTime){
// do some stuff
} else {
// do other stuff
}
您可以使用 SimpleDateFormat 解析字符串并比较时间,但对于 HH:mm 格式(或任何降序、固定长度的日期/时间格式),您可以只比较字符串。
// assuming strings have the same padded format.
if(startTime.compareTo(endTime) > 0) // startTime is greater
您可以使用 Joda LocalTime类
private LocalTime toTime(String time) {
String[] t = time.split(":");
return new LocalTime(t[0], t[1]);
}
int compared = toTime(startTime).compareTo(toTime(endTime));
boolean b = toTime(startTime).isBefore(toTime(endTime));
boolean b = toTime(startTime).isAfter(toTime(endTime));