wir eine REST-Webservice laufen, die verschiedene Daten verbraucht, meine aktuellen Ausgabe gehört zu einem Zeitpunkt, als String empfangen und analysiert durch eine java.text.SimpleDateFormat (Java 8):„Reverse“ falsch analysiert Datum
Wir habe sehr viele (> 50k) "falsch" formatierte Strings erhalten, die sowieso vom SimpleDateFormat analysiert wurden.
Das SimpleDateFormat ist mit dem Muster "yyyy-MM-dd" konfiguriert. Wir erhielten Strings umgekehrt "dd-MM-yyyy".
Zum Beispiel wurde die Zeichenfolge "07-07-1950" auf das Datum "0012-10-31" geparst (ab Juli in Jahr 7, 1950 Tage hinzugefügt).
Wir haben die Implementierung repariert, daher werden diese Strings nun wie erwartet analysiert. Aber wir haben alle korrupten Daten im System. Die letzte Frage lautet jetzt:
Gibt es eine Möglichkeit, vom Datum "0012-10-31" auf mögliche Originaleingänge (zB "07-07-1950", "07-06-1980" und vielleicht mehr) zu schließen ...)?
Mit freundlichen Grüßen
By the way, die störenden alten Datum-Zeit-Klassen wie [ 'java.util.Date'] (https://docs.oracle.com/javase/ (Java.util.Calendar) (https://docs.oracle.com/javase/9/docs/api/java/util/Calenda) r.html) und 'java.text.SimpleDateFormat' sind nun [legacy] (https://en.wikipedia.org/wiki/Legacy_system), ersetzt durch [* java.time *] (https: // docs .oracle.com/javase/9/docs/api/java/time/package-summary.html) Klassen, die in Java 8 und Java 9 integriert sind. Siehe [* Tutorial * by Oracle] (https://docs.oracle.com /javase/tutorial/datetime/TOC.html). –