字符串转LocalDateTime
DateTimeFormatter formatter = DateTimeFormatter.*ofPattern*("yyyy-MM-dd HH:mm");
LocalDateTime st = null;
String startTime = null;
try {
System.*out*.println("请输入起飞时间,格式为年-月-日 时:分(yyyy-MM-dd HH:mm:ss)");
startTime = *scanner*.nextLine();
st = LocalDateTime.*parse*(startTime, formatter);
} catch (DateTimeException e) {
System.*out*.println("请输入正确的日期格式!!");
}
如果希望只输入日期,不能使用LocalDateTime(LocalDateTime必须要日期+时间信息),而是使用LocalDate,需要返回LocalDateTime类型时,再将LocalDate转化为LocalDateTime
DateTimeFormatter formatter1 = DateTimeFormatter.*ofPattern*("yyyy-MM-dd");
DateTimeFormatter formatter2 = DateTimeFormatter.*ofPattern*("yyyy-M-dd");
System.*out*.println("请输入出发时间,格式为年-月-日:");
String time=*scanner*.nextLine();
LocalDate st=null;
ArrayList<Flight> arrayList1=null;
//匹配MM和M两种格式
try{
//先转化成LocalDate
st= LocalDate.*parse*(time, formatter1);
//通过atStartOfDay()将LocalDate转化成LocalDateTime
arrayList1=*orderUtil*.find(saddress,eaddress,st.atStartOfDay());
}catch (DateTimeException e){
try{
//尝试匹配第二种输入日期格式,提高健壮性
st= LocalDate.*parse*(time, formatter2);
//匹配成功则进行之后的操作
arrayList1=*orderUtil*.find(saddress,eaddress,st.atStartOfDay());
}catch (DateTimeException e1){
System.*out*.println("日期格式输入不正确,请输入格式为年-月-日!");
}
}