【发布时间】:2020-08-25 15:20:27
【问题描述】:
我有员工名单,我正在尝试查找最新加入日期的Employee。这就是我目前所实施的。
员工:
package com;
public class Employee {
private String accountNumber;
private String joiningdate;
public Employee(String accountNumber, String joiningdate) {
super();
this.accountNumber = accountNumber;
this.joiningdate = joiningdate;
}
// setters and getters
}
应用:
package com;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class LatestDueDate {
public static void main(String[] args) throws Exception {
try {
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
List < Employee > empList = new ArrayList < > ();
empList.add(new Employee("1234", "07/11/2020"));
empList.add(new Employee("1234", "06/12/2020"));
Employee emp = empList.stream().max(Comparator.comparing(Employee::getJoiningdate)).get();
} catch (Exception e) {
}
}
}
我知道我需要将字符串日期格式转换为日期。
【问题讨论】:
-
您没有解释您的代码有任何问题。比如说,一个特定的输入不能像你期望的那样工作
-
如果你在 catch 块中添加
e.printStacktrace()而不是吃掉异常,它不会伤害任何人。 -
不要使用
SimpleDateFormat或Date。它们已经过时了。请改用java.time中的类。 -
@MCEmperor 所说的。并且不要将您的加入日期表示为对象中的字符串。将其表示为
LocalDate(就像您不将数字和布尔值表示为字符串一样——我希望如此)。