以特定格式获取 java 中的日期输入
Take Date input in java in a specific format
我需要在 Java 中制作一个程序,以这种格式输入日期 - “dd-mm-yyyy”。除此以外的任何内容均被视为无效。
我知道 java 有一个 LocalDateTime API 和一个 DateTimeFormatter API。但是,它们用于在输入后将日期解析为特定格式。
有什么办法可以只接受指定格式的 Date 输入,输入完成后不解析它吗?
我对这些 API 很陌生并且正在学习,我们将不胜感激。
提前致谢。
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.*;
import javax.swing.text.DateFormatter;
public class Voter_eligibility {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc= new Scanner(System.in);
DateTimeFormatter dob_format = DateTimeFormatter.ofPattern("dd-mm-uuuu");
String input = sc.nextLine();
LocalDate dob = LocalDate.parse(input,dob_format);
System.out.println(dob);
}
}
这就是我所做的。但它给出了一个例外。
19-08-1999
Exception in thread "main" java.time.format.DateTimeParseException: Text '19-08-1999' could not be parsed at index 3
at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2051)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1953)
at java.base/java.time.LocalDate.parse(LocalDate.java:429)
at Voter_eligibility.main(Voter_eligibility.java:17)
DateTimeFormatter 中的月份使用大写 M
而不是小写 m
,因此您的代码应该是:
DateTimeFormatter dob_format = DateTimeFormatter.ofPattern("dd-MM-uuuu");
我需要在 Java 中制作一个程序,以这种格式输入日期 - “dd-mm-yyyy”。除此以外的任何内容均被视为无效。 我知道 java 有一个 LocalDateTime API 和一个 DateTimeFormatter API。但是,它们用于在输入后将日期解析为特定格式。 有什么办法可以只接受指定格式的 Date 输入,输入完成后不解析它吗? 我对这些 API 很陌生并且正在学习,我们将不胜感激。 提前致谢。
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.*;
import javax.swing.text.DateFormatter;
public class Voter_eligibility {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc= new Scanner(System.in);
DateTimeFormatter dob_format = DateTimeFormatter.ofPattern("dd-mm-uuuu");
String input = sc.nextLine();
LocalDate dob = LocalDate.parse(input,dob_format);
System.out.println(dob);
}
}
这就是我所做的。但它给出了一个例外。
19-08-1999
Exception in thread "main" java.time.format.DateTimeParseException: Text '19-08-1999' could not be parsed at index 3
at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2051)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1953)
at java.base/java.time.LocalDate.parse(LocalDate.java:429)
at Voter_eligibility.main(Voter_eligibility.java:17)
DateTimeFormatter 中的月份使用大写 M
而不是小写 m
,因此您的代码应该是:
DateTimeFormatter dob_format = DateTimeFormatter.ofPattern("dd-MM-uuuu");