Przede wszystkim jestem nowy w pakiecie java.time
.Wydrukuj czas w formacie czytelnym dla człowieka przez EL
Piszę aplikację webową, która musi działać w określonych porach dnia i z kilkoma czasami trwania wydarzeń.
Więc napisałem swój kod używając klas LocalTime
i Duration
z pakietu java.time
.
Kiedy potrzeba, aby uczynić ich wartość w JSP jest bardzo prosta dla LocalTime
obiektu (bo .toString()
zwraca czytelnej Vale), więc mogę tylko napisać ${startTime}
i wszystko idzie w odpowiedni sposób (np jest renderowane jako 9:00
). To samo podejście nie działa w przypadku Duration, ponieważ jego reprezentacja jest podobna do PT20M
(w tym przypadku przez 20 minut).
Czy istnieje elegancki sposób na dokonanie konwersji czytelnej dla człowieka w JSP bezpośrednio przez EL?
Tak, wiem, że mogę przekonwertować obiekt w łańcuchu na moich zajęciach (przed JSP), ale szukam sugerowanego podejścia (którego nie mogę znaleźć) ... innym punktem jest to, że Nie widzę oficjalnej metody "przekonwertuj()" (lub jakiejkolwiek innej) w obiekcie Duration ... więc myślę, że używam niewłaściwego obiektu do odwzorowania czasu (dodawanie lub odejmowanie na s).
Dziękuję.
Czy potrzebujesz sformatowanego tekstu w języku angielskim, a także w dowolnym innym języku (np. "1 Stunde und 20 Minuten" w języku niemieckim)? Jeśli ważne są inne języki, zalecam korzystanie z dodatkowej biblioteki stron trzecich. Java-8 nie zawiera żadnego wbudowanego formatowania czasu, patrz także poprawna odpowiedź @Erlandssona, która jest wystarczająca, jeśli potrzebujesz tylko formularza liczbowego. –
Prawdę mówiąc, potrzebuję tylko 20 na 20 minut lub 1:20 na 1 godzinę i 20 minut ... nic wspólnego z lokalizacją, tylko ludzka czytelna forma ... –