我想用JSTL本地化日期,我试着像下面这样做。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setLocale value="da_DK" scope="application" />
<fmt:formatDate value="${some.date}" dateStyle="FULL" />
some.date
是java.util.Date
个实例。我玩各种不同的语言环境,但没有任何工作。无论我选择哪种语言环境,我都会得到以下输出: 2015年1月13日,星期二。在删除上述对setLocale()
的调用后,我也尝试了以下操作:
<jsp:useBean id="now" class="java.util.Date" />
<fmt:setLocale value="en_US" />
<fmt:formatDate value="${now}" dateStyle="FULL" />
<fmt:setLocale value="fr_FR" />
<fmt:formatDate value="${now}" dateStyle="FULL" />
以上输出 2015年1月13日星期二两次,对于我尝试过的每个区域设置也是如此。我配置的唯一与locale相关的是以下(Spring MVC项目):
@Bean
public CookieLocaleResolver localeResolver() {
Locale locale = new Locale("dk");
CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setDefaultLocale(locale);
return localeResolver;
}
文本是否应该翻译成语言环境定义的语言,或者格式是否至少改变了?我在这里做错了什么想法?我尝试了我可以在网上找到的每个例子,但结果是一样的。
答案 0 :(得分:4)
我只想将范围更改为session
,如下所示
<fmt:setLocale value="fr_FR" scope="session"/>
Date in France:
<fmt:formatDate value="${now}" dateStyle="full"/> <br/>
<fmt:setLocale value="en_US" scope="session"/>
Date in US:
<fmt:formatDate value="${now}" dateStyle="full" /> <br/>