Zunächst einmal bin ich neu in java.time
Paket.Drucken Sie eine Dauer in menschlich lesbaren Format von EL
Ich schreibe eine Webapp, die mit bestimmten Zeiten des Tages und mit mehreren Dauer der Ereignisse arbeiten muss.
Also schrieb ich meinen Code mit LocalTime
und Duration
Klassen von java.time
Paket.
Wenn ich brauche ihr Wert in JSP machen es für LocalTime
Objekt ist sehr einfach (da .toString()
einen Mensch lesbaren vale zurückkehrt), so kann ich nur schreiben ${startTime}
und alles geht in der richtigen Art und Weise (zB als 9:00
gemacht wird). Derselbe Ansatz funktioniert nicht für die Dauer, da seine Darstellung etwa PT20M
ist (in diesem Fall für 20 Minuten).
Gibt es eine elegante Möglichkeit, eine lesbare Konvertierung in JSP direkt von EL durchzuführen?
Ja, ich weiß, ich kann das Objekt in einer Zeichenfolge in meinen Klassen (vor JSP) konvertieren, aber ich suche nach dem vorgeschlagenen Ansatz (den ich nicht finden kann) ... ein weiterer Punkt ist das Ich sehe keine offizielle "convert()" - Methode (oder was auch immer) im Duration-Objekt ... also denke ich, dass ich das falsche Objekt verwende, um eine Zeitdauer zuzuordnen (um LocalTime
s hinzuzufügen oder zu subtrahieren).
Vielen Dank.
Benötigen Sie eine formatierte Textdauer nur in Englisch oder auch in einer anderen Sprache (zB "1 Stunde und 20 Minuten")? Wenn andere Sprachen wichtig sind, empfehle ich eine zusätzliche 3rd-Party-Bibliothek zu verwenden. Java-8 enthält keine integrierte Dauerformatierung, siehe auch die richtige Antwort von @Erlandsson, die ausreicht, wenn Sie nur ein numerisches Formular benötigen. –
In Wahrheit brauche ich nur 20 für 20 Minuten, oder 1:20 für 1 Stunde und 20 Minuten ... nichts mit Lokalisierung zu tun, nur eine lesbare Form ... –