Ich versuche, datetime um eine Dauer zu verschieben, die ich im Format "HHmm" bekomme, zum Beispiel "0010" bedeutet 10 Minuten.Wie kann die Dauer im Format "HHmm" mit JodaTime analysiert werden?
Ich habe ähnliche Ticket (Parsing time strings like "1h 30min") gefunden, aber ich kann es nicht richtig funktionieren.
Hier ist der Code:
PeriodFormatter hoursMinutes = new PeriodFormatterBuilder().appendHours().appendMinutes().toFormatter();
Duration duration = hoursMinutes.parsePeriod("0010").toStandardDuration();
duration.getStandardMinutes(); //Returns 600
Aus irgendeinem Grund bekomme ich 600 Minuten statt 10. So sieht es aus wie die Minuten wie Stunden interpretiert wurden, aber ich kann nicht verstehen, warum. Ich habe versucht, .maximumParsedDigits(2)
für Stunden hinzuzufügen, aber das Ergebnis war das gleiche.
Warum ist mein Code falsch? Gibt es eine andere Möglichkeit, den Dauerparser zu initialisieren? Etwas, wo ich einfach das Standardformat wie "HHmm" verwenden könnte?
Ah okay, du warst schneller +1, also löschte ich meine Antwort. Persönlich bevorzuge ich einen Muster-basierten Ansatz, zum Beispiel unter Verwendung meiner Lib Time4J: "Dauer d = Dauer.formatter (ClockUnit.class," #hmm "). Parse (" 0010 "); lange Minuten = ClockUnit.MINUTES.convert (d); System.out.println (Minuten); // 10' –
Ich mag auch Ihre Lösung mehr, aber ich möchte keine andere Bibliothek nur dafür hinzufügen. – NeplatnyUdaj
Fairer Punkt, Migration ist immer Arbeit. –