fix: Datumsspalten mit Uhrzeit werden auch ohne passendes Format erkannt

Der Revolut-Export führt "2026-01-06 23:11:14" in der Datumsspalte. Wählte man
im Dropdown JJJJ-MM-TT, scheiterte das Parsen an der Uhrzeit – jede Zeile hatte
kein Datum und galt als ungültig ("137 Zeilen erkannt, 0 werden gebucht"),
obwohl die Auswahl richtig aussah.

- parse_date schneidet eine überzählige Uhrzeit ab und kommt auch damit klar,
  wenn das Format eine Uhrzeit erwartet, der Wert aber keine hat (ISO-T ebenso)
- Dropdown um die Varianten mit Uhrzeit ergänzt, damit die Bank-Vorlagen ihren
  echten Eintrag zeigen statt eines leeren Feldes
- Test: reines Datumsformat auf Datei mit Uhrzeit -> alle Zeilen erkannt, 84 grün

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-21 08:02:18 +02:00
co-authored by Claude Opus 4.8
parent e69be7f3d5
commit d97e08e913
3 changed files with 49 additions and 1 deletions
+6
View File
@@ -9,12 +9,18 @@ import CategorySelect from "../components/CategorySelect";
import DataTable from "../components/DataTable";
import { formatMoney } from "../format";
// Eine Uhrzeit im Wert ist unkritisch – parse_date im Backend schneidet sie ab.
// Die Varianten mit Uhrzeit stehen trotzdem hier, damit die Bank-Vorlagen im
// Dropdown ihren echten Eintrag zeigen statt eines leeren Feldes.
const DATE_FORMATS = [
{ v: "%d.%m.%Y", l: "TT.MM.JJJJ" },
{ v: "%Y-%m-%d", l: "JJJJ-MM-TT" },
{ v: "%d/%m/%Y", l: "TT/MM/JJJJ" },
{ v: "%m/%d/%Y", l: "MM/TT/JJJJ" },
{ v: "%d.%m.%y", l: "TT.MM.JJ" },
{ v: "%Y-%m-%d %H:%M:%S", l: "JJJJ-MM-TT SS:MM:SS" },
{ v: "%Y-%m-%d %H:%M:%S.%f", l: "JJJJ-MM-TT SS:MM:SS.s" },
{ v: "%d.%m.%Y %H:%M:%S", l: "TT.MM.JJJJ SS:MM:SS" },
];
function defaultConfig() {