<p>Is there a simple way to parse a date that may be in MM/DD/yyyy, or M/D/yyyy, or some combination? i.e. the zero is optional before a single digit day or month.</p>

<p>To do it manually, one could use:</p>

<pre><code>String[] dateFields = dateString.split("/");
int month = Integer.parseInt(dateFields[0]);
int day = Integer.parseInt(dateFields[1]);
int year = Integer.parseInt(dateFields[2]);
</code></pre>

<p>And validate with:</p>

<pre><code>dateString.matches("\\d\\d?/\\d\\d?/\\d\\d\\d\\d")
</code></pre>

<p>Is there a call to SimpleDateFormat or JodaTime that would handle this?</p>

Yep, use 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"));
```
```