title: NSDateFormatter with invalid dates
body: <p>I've just found a strange issue.
  I've tried to parse an invalid date like <code>1999-02-31 23:30:00</code> using <code>NSDateFormatter</code>.</p>
  
  <pre><code>var str = "1999-02-31 23:30:00"
  var f = DateFormatter()
  f.dateFormat = "yyyy-MM-dd HH:mm:ss"
  f.locale = Locale(identifier: "it")
  //  f.calendar = Calendar.current
  f.timeZone = TimeZone(identifier: "Europe/Rome")!
  let parsedDate = f.date(from: str)
  </code></pre>
  
  <p>The result is <code>nil</code> if you parse it without setting the calendar; once you set it the result is the the date adjusted to the extra day added to the wrong date (March 3, 1999).</p>
  
  <p>Is this a known issue or am I missing something?</p>