![]() |
|
Vers. 3.3 Datum Eingabe in Liste nicht möglich - Printable Version +- RouteConverter Forum (https://forum.routeconverter.com) +-- Forum: Users (https://forum.routeconverter.com/forum-17.html) +--- Forum: Deutsch: Diskussionen (https://forum.routeconverter.com/forum-4.html) +--- Thread: Vers. 3.3 Datum Eingabe in Liste nicht möglich (/thread-4104.html) Pages:
1
2
|
Vers. 3.3 Datum Eingabe in Liste nicht möglich - Arno - 23.03.2026 Hallo Gemeinde! RouteConverter 3.3 Die Eingabe eines Datums ins Datumfeld der GPX-Liste wird mit der Fehlermeldung "Konnte Datum '2026-03-22' nicht erkennen da es nicht dem erforderlichen Format 'y-MM-dd' entspricht. Die Eingabe entspricht doch aber genau dem geforderten Format. In der vorherigen Version gibt's da keine Probleme. Die neue Version läuft mit den gleichen Einstellungen. MfG Arno RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - lundefugl - 23.03.2026 Hallo Arno Kannst du einige Infos zu deinem System noch geben ? Konkret: Was hast du für eine Sprache eingestellt ? Ich meine speziell im Routeconverter und auch im darunterliegendem System. Hast du Linux, Windows und was für eine Java-Version nutzt du ? Ich versuche gerade zu verstehen, wo das komische Format herkommt. Ein einzelnes y ist nicht zulässig nach Java-Definition und dürfte das Problem bei dir sein. Zwischen beiden Versionen gab es eine Änderung beim Verhalten bezüglich Interpretation des Datums (lokale Zeitzone und nicht UTC). Auf das Parsing hätte das nur keinen Einfluss haben sollen. Danke Thomas RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - lundefugl - 03.04.2026 Ich habe noch etwas geforscht und auch den RC-Code verglichen. Im RouteConverter wird neu jetzt die im RouteConverter eingestellte Locale als Basis für die Bestimmung des Patterns benutzt und nicht die Locale, die Java beim Start automatisch bestimmt hat. Und hier kommt bei einigen Locales irgendwie Blödsinn beim Format zurück. Ein einzelnes y ist nach CLDR nicht zulässig. Der Parser bei Java liest dann einfach alles bis zum Ende des Strings als Jahreszahl. So lange das y am Ende steht, ist das auch "kein" Problem. Es wird nur ein Problem, wenn es nicht am Ende ist. Folglich bei folgenden fett markierten Sprachen: ar_SA --> "d/M/y" pt_BR --> "dd/MM/y" ca_ES --> "d/M/yy" zh_CN --> "y/M/d" cs_CZ --> "dd.MM.yy" da_DK --> "dd.MM.y" de_DE --> "dd.MM.yy" en_US --> "M/d/yy" es_ES --> "d/M/yy" fr_FR --> "dd/MM/y" hr_HR --> "dd. MM. y." it_IT --> "dd/MM/yy" ja_JP --> "y/MM/dd" ko_KR --> "yy. M. d." lv --> "dd.MM.yy" hu_HU --> "y. MM. dd." nl_NL --> "dd-MM-y" nb_NO --> "dd.MM.y" pl_PL --> "d.MM.y" pt_PT --> "dd/MM/yy" ru_RU --> "dd.MM.y" sk_SK --> "d. M. y" fi_FI --> "d.M.y" sr_SR --> "d. M. y." ta --> "d/M/yy" tr_TR --> "d.MM.y" uk_UA --> "dd.MM.yy" ROOT --> "y-MM-dd" @Christian: Ich denke, dass die Ursache ist, dass die Locale von Hand aus Language & Country zusammengebaut wird. Und sobald es diese Kombination bei Java nicht gibt, kommt da was komisches zurück. Vermutlich stimmen auch andere Locales nicht ganz, wenn das y am Ende allein steht. Ich werde da noch etwas forschen. Gruss Thomas RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - lundefugl - 03.04.2026 Hallo Christian Wenn man sich alle Java-Locales ausgeben lässt, dann sind noch viel mehr Sprachen betroffen. Es war scheinbar bis jetzt eher Zufall und Glück, dass keine System-Locale bei den Anwendern darunter war. ich sehe 3 Varianten, wie man das in den Griff bekommen könnte.
Leider kann ich den Fehler bei mir nicht reproduzieren. Ich habe mal versucht eine andere Sprache auszuwählen, aber damit startet der RC nicht mehr. Da kommt eine java.util.MissingResourceException. Scheinbar fehlen da einige Übersetzungen bei mir. Der Key "revert-positions-action" ist scheinbar nur in Deutsch, Englisch und Tamilisch (?) (Sprachkürzel ta) vorhanden. Und bei Ta fehlt danach der Key "snap-to-road-action". Gruss Thomas RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - lundefugl - 03.04.2026 Variante 3 kann man schon umsetzen. Leider ist da dann der Parser etwas strenger. D.h. wenn man zweistellig ausgeben will zur Formatierung, dann will der Parser auch zwingend zweistellig haben. D.h. man muss dann führende Nullen immer zwingend eingeben, was blöd ist. Ich bin noch etwas am schauen, ob es da eine elegantere Variante gibt. RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - lundefugl - 05.04.2026 Hallo Christian Pullrequest ist gemacht und ich hoffe, dass jetzt alles funktioniert. Über Details können wir im Pullrequest ggf. diskutieren. Falls es zu viel wird, dann wäre auch mal einen Call möglich, um das direkt zu besprechen. Hintergrund der ganzen Überlegung ist nun: Die ROOT-Locale soll nach meinem Verständnis das Standard-Verhalten vom lokalen Java sein. Deswegen wird nun die Locale beim Start sich noch gemerkt, damit in dem Fall darauf zurückgegriffen werden kann. Das ganze Formatieren und Parsen habe ich in eine eigene Klasse ausgelagert, für die es ein Interface gibt. Diese basiert jetzt auf der "alten" Zeit-API von Java. Wenn man mal auf die neue API umstellen will (die restriktiver beim Parsen ist und damit andere Probleme verursacht) oder man will das Pattern aus den Sprachfiles des Routeconverters beziehen, so muss nur eine eigene Implementierung gemacht werden und der Rest sollte sich nicht mehr ändern. Kommt so eine "komische" Formatierung mit einem y, so wird dieses durch zwei yy ersetzt, womit der Parser dann läuft. Ich habe für alle Varianten mal versucht Unittests zu machen. Schwedisch wird da benutzt, weil das eine Sprache ist, die auch dieses Pattern "y-MM-dd" benutzt. Gruss & schöne Ostern noch Thomas RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - routeconverter - 06.04.2026 Hallo Thomas, vielen Dank für die ausführliche Recherche. Ich habe den Pull Request angenommen und ein neues Prerelease hochgeladen, das den neuen Code enthält. Bitte teste(t) und berichtet! RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - lundefugl - 07.04.2026 Hallo Christian keine Ursache. Das war ja auch irgendwie mein Bug vom Weihnachts-Merge. Und ausserdem hat mich natürlich der Grund auch brennend interessiert. Nach über 25-Jahren Java-Entwicklung habe ich dadurch wieder was gelernt. Dass da Java Formate ausspuckt, die es selbst nicht mehr lesen kann, war mir bisher nicht bekannt. In allen Firmen und Projekten hatten wir den Fall noch nie. Wir haben da immer die Formate über die eigene Lokalisierung vorgegeben, um besser Einfluss auf die Darstellung zu bekommen (mit Sekunden oder ohne usw.). Das man damit diesen Bug (ich nenne es mal so, weil es das für mich ist) umgeht, war einfach Glück. Bei mir funktioniert die neue Preversion weiter. Ich habe aber nur deutsche und englische Systeme, wo das Problem auch zuvor nicht aufgetreten ist. Und andere Sprachen kann ich im RC auch nicht auswählen, da ich es dann nicht lesen/bedienen kann. Für den Test wären andere Spracheinstellungen im RC oder vom Betriebssystem hilfreich. Speziell ein Test von Arno wäre gut, aber er war leider seit seinem Post nicht mehr online. Gruss Thomas RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - routeconverter - 09.04.2026 (07.04.2026, 17:29)lundefugl Wrote: Nach über 25-Jahren Java-Entwicklung habe ich dadurch wieder was gelernt. Dass da Java Formate ausspuckt, die es selbst nicht mehr lesen kann, war mir bisher nicht bekannt. Hallo Thomas, das ist immer wieder spannend... ich bin auch schon seit Java 1.0 an Bord, RouteConverter gibt es seit 18 Jahren und es gab viele Millionen Downloads und dann kommen merkwürdige Bugs wie dieser ans Tageslicht: https://forum.routeconverter.com/thread-4106-post-22925.html#pid22925 Auf jeden Fall sieht Deine Lösung jetzt deutlich besser verständlich aus. Danke dafür! RE: Vers. 3.3 Datum Eingabe in Liste nicht möglich - ThomasK - 11.05.2026 Habt Ihr das Prerelease irgendwo für mich? Mein Rechner Win10 pro (aktuell gepatched) in Deutsch, RouteConverter 3.3 auch in Deutsch beschwert isch uber das Zeitformat, wenn ich in einem Track die Zeit bei einem Punkt ändern möchte. Meldung: Konnte Zeit '15:00:00' nicht erkennen da sie nicht dem erforderlichen Format 'HH:mm:ss' entspricht. Beim Click auf OK ist das Feld leer. Das passiert auch, wenn ich eine Zeit von einem anderen Punkt kopiere. Ich bin kein Entickler, sondern nur IT-Manager, aber das Problem riecht nach der Meldung mit dem Datum von Arno. Schöne Grüße Thomas |