Prima di tutto sono nuovo al pacchetto java.time
.Stampa una durata in formato leggibile da EL
Sto scrivendo una webapp che deve funzionare con orari specifici della giornata e con diverse durate di eventi.
Così ho scritto il mio codice utilizzando le classi LocalTime
e Duration
del pacchetto java.time
.
Quando ho bisogno di rendere il loro valore in JSP è molto semplice per LocalTime
oggetto (perché .toString()
restituisce una valle leggibile), quindi posso solo scrivere ${startTime}
e tutto va nel modo giusto (ad esempio, si è resa come 9:00
). Lo stesso approccio non funziona per la Durata, perché la sua rappresentazione è qualcosa come PT20M
(in questo caso per 20 minuti).
Esiste un modo elegante per eseguire una conversione leggibile da persona in JSP direttamente da EL?
Sì, so che posso convertire l'oggetto in una stringa nelle mie classi (prima di JSP), ma sto cercando l'approccio suggerito (che non sono in grado di trovare) ... un altro punto è che Non vedo un metodo "convert()" (o qualsiasi altro) ufficiale nell'oggetto Durata ... quindi sto pensando di utilizzare l'oggetto sbagliato per mappare una durata (per aggiungere o sottrarre LocalTime
s).
Grazie.
Avete bisogno di una durata testuale formattata solo in inglese o anche in qualsiasi altra lingua (come "1 Stunde und 20 Minuten" in tedesco)? Se altre lingue sono importanti, ti consiglio di utilizzare una libreria supplementare di terze parti. Java-8 non contiene alcuna formattazione di durata integrata, vedi anche la risposta corretta di @Erlandsson che è sufficiente se hai solo bisogno di un modulo numerico. –
In verità ho solo bisogno di un 20 per 20 minuti, o 1:20 per 1 ora e 20 minuti ... niente a che fare con la localizzazione, solo una forma leggibile dall'uomo ... –