我正在写一个注册活动,我想让用户输入用于存储记录的注册日期,但是问题是如何从使用扫描仪的用户那里获得日期作为输入?这样做了,但是它以某种方式说出一个错误,抱歉我还是Java的新手。
System.out.println(" Enter in following format : dd-mm-yyyy");
String regDate=s.nextLine();
SimpleDateFormat format=new SimpleDateFormat("dd-mm-yyyy");
Date regDate=format.parse(date);
答案 0 :(得分:0)
这是一个非常小的示例,具有适当的异常处理:
public class DateInputTest implements Closeable {
private static final String DATE_FORMAT = "yyyy-MM-dd";
private final Scanner scanner;
public DateInputTest() {
this.scanner = new Scanner(System.in);
}
public LocalDate getDateInput() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_FORMAT);
String line = scanner.nextLine();
try {
return LocalDate.parse(line, formatter);
} catch (Exception e) {
System.err.println("Invalid date value:: " + line);
}
return null;
}
@Override
public void close() throws IOException {
scanner.close();
}
public static void main(String... args) {
DateInputTest test = new DateInputTest();
System.out.print("Please input a date [pattern yyyy-MM-dd]: ");
Optional.ofNullable(test.getDateInput()).ifPresent(System.out::println);
}
}
答案 1 :(得分:0)
不能有两个名称相同的变量。另外,日期在任何地方都没有定义。
最后一行应如下所示:
Date date = format.parse(regDate)
;
答案 2 :(得分:0)
您可以这样做:
import java.text.SimpleDateFormat;
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
System.out.println("dd-mm-yyyy");
Scanner scanner = new Scanner(System.in);
String date = scanner.nextLine();
Date date1=new SimpleDateFormat("dd-MM-yyyy").parse(date);
System.out.println(date1);
}
}