具有语言环境相关模式的 JSTL fmt:formatDate

JSTL fmt:formatDate with locale dependent pattern

在 JSP 页面中我必须显示一些日期,但是 none 可用的日期格式(短、中或长)适合我。

<fmt:formatDate value="${someDate}" type="date" dateStyle="short"/>
<fmt:formatDate value="${someDate}" type="date" dateStyle="medium"/>
<fmt:formatDate value="${someDate}" type="date" dateStyle="long"/>

我必须求助于指定的模式:

<fmt:formatDate value="${someDate}" type="date" pattern="dd-MM/yyyy"/>

但是,模式本身取决于语言环境,我的意思是,我想从消息包中加载模式。我该怎么做?

我试过了

<fmt:formatDate value="${someDate}" type="date" pattern="<fmt:message key='date.format.short'/>"/>

但是没用。

您可以使用 <c:set> 标签来存储模式的值。

像这样的东西会做你想要的:

<c:set var="myPattern"><fmt:message key="date.format.short" /></c:set>

<fmt:formatDate value="${someDate}" type="date" pattern="${myPattern}" />

或者更好,正如@Sachin 所指出的那样,使用 var 属性:

<fmt:message key="date.format.short" var="${myPattern}"/>

<fmt:formatDate value="${someDate}" type="date" pattern="${myPattern}" />