En java 1.8 este código falla
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); dateFormat.setLenient(false); dateFormat.setTimeZone(TimeZone.getTimeZone("America/New_York")); dateFormat.parse("03/11/2007 02:05:01"); Interesante, que 03:05:01 analiza correctamente
Sí, eso es porque 2007-03-11T02:05:01 nunca ocurrió en la zona horaria de América/Nueva_York.
El cambio de horario de verano de primavera se produjo en 2007-03-11T07:00:00Z, por lo que cualquiera que mirara un reloj consciente de la zona horaria habría visto:
Le ha dicho a SimpleDateFormat que maneje la entrada estrictamente, luego le dio una fecha/hora que no existía, por lo que es razonable que falle.
Es importante destacar que, independientemente de cómo quiera manejar esto, le recomiendo encarecidamente que abandone los tipos heredados de Date / Calendar /formato de fecha y use DateFormat en java.time lugar.