我有一个任务对象,有一个名称和一个日期。日期值必须是String
。一个示例是11/9/2015 23:00
与11/24/2015 12:00
进行比较。 我需要帮助,为此编写compareTo()
,以便最早显示最早日期的任务。我所拥有的是不正确的,因为它没有正确比较。我知道有替代品,但它是必需的,我用String来做到这一点。我曾考虑使用.split()
将mm/dd/yyyy分割为"/"
,但不知道如何执行此操作。比较类型的日期字符串
public class Task implements Comparable<Task> {
/** Task name. */
private String name;
/** Task due date. */
private String dueDate;
/**
* Initializes a tasks name and due date.
* @param n Name
* @param d due date
*/
public Task(String n, String d) {
name = n;
dueDate = d;
}
/**
* Accessor for task name.
* @return Task name.
*/
public String getName() {
return name;
}
/**
* Accessor for task due date.
* @return Task due date.
*/
public String getDueDate() {
return dueDate;
}
/**
* Compares the due dates of the tasks to get the soonest to the front of the list.
* @param t The task to compare.
* @return The tasks in chronological order.
*/
@Override
public int compareTo(Task t) { //Need help here.
int val = dueDate.compareTo(t.getDueDate());
if(val == 0) {
val = name.compareTo(t.getName());
}
if(dueDate.compareTo(t.getDueDate()) > 0) {
val = -1;
}
if(dueDate.compareTo(t.getDueDate()) < 0) {
val = 1;
}
return val;
}
可以转换为Date对象然后比较吗? – AbtPst
[在Java中比较日期字符串](http:// stackoverflow。com/questions/10609596/comparison-date-strings-in-java) –
@AbtPst不,我必须使用'String' – JCCS