首先,我是java.time
包的新手。通过EL打印持续时间为人类可读格式
我正在写一个web应用程序,需要使用一天的特定时间和几个持续时间的事件。
因此,我使用LocalTime
和Duration
类的java.time
包编写了我的代码。
当我需要使它们在JSP价值它是LocalTime
对象非常简单(因为.toString()
返回一个人类可读的淡水河谷),这样我就可以写${startTime}
,万事如意以正确的方式(例如,它呈现为9:00
)。 相同的方法不适用于持续时间,因为它的表示形式类似于PT20M
(在这种情况下为20分钟)。
它是否存在一个优雅的方式来直接通过EL在JSP中执行人类可读的转换?
是的,我知道我可以在我的类(JSP之前)字符串中转换对象,但我正在寻找建议的方法(我无法找到)......另一点是我在Duration对象中看不到官方的“convert()”(或任何其他)方法......所以我想我使用错误的对象来映射一段时间(在LocalTime
s上添加或减去)。
谢谢。
您是否需要格式化文本才能使用英文或其他语言(例如德语中的“1 Stunde und 20 Minuten”)?如果其他语言很重要,那么我建议使用额外的第三方库。 Java-8不包含任何内置的持续时间格式,另请参阅@Erlandsson的正确答案,如果您只需要一个数字表单就足够了。 –
事实上,我只需要一个20分钟20分钟,或1:20 1小时20分钟......与本地化无关,只是一种人类可读的形式...... –