接受05/05/1999和5/5/1999等的日期时间解析

Ray*_*ers 4 java time parsing date

有没有一种简单的方法来解析可能是MM/DD/yyyy,M/D/yyyy或某种组合的日期?即,在一个数字日或月之前,零是可选的.

要手动完成,可以使用:

String[] dateFields = dateString.split("/");
int month = Integer.parseInt(dateFields[0]);
int day = Integer.parseInt(dateFields[1]);
int year = Integer.parseInt(dateFields[2]);
Run Code Online (Sandbox Code Playgroud)

并验证:

dateString.matches("\\d\\d?/\\d\\d?/\\d\\d\\d\\d")
Run Code Online (Sandbox Code Playgroud)

是否会调用SimpleDateFormat或JodaTime来处理这个问题?

too*_*kit 11

是的,使用setLenient:

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
df.setLenient(true);
System.out.println(df.parse("05/05/1999"));
System.out.println(df.parse("5/5/1999"));
Run Code Online (Sandbox Code Playgroud)