有没有一种简单的方法来解析可能是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]);
并验证:
dateString.matches("\\d\\d?/\\d\\d?/\\d\\d\\d\\d")
是否会调用SimpleDateFormat或JodaTime来处理这个问题?
是的,使用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"));