JSTL formatDate 忽略语言环境
JSTL formatDate ignoring locale
我想用 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 日星期二 两次,我尝试过的每个语言环境都会发生同样的情况。我唯一配置的与区域设置相关的是以下内容(Spring MVC 项目):
@Bean
public CookieLocaleResolver localeResolver() {
Locale locale = new Locale("dk");
CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setDefaultLocale(locale);
return localeResolver;
}
是否应该将文本翻译成语言环境定义的语言,或者至少更改格式?知道我在这里做错了什么吗?我尝试了所有可以在网上找到的示例,但结果都是一样的。
我只想将范围更改为 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/>
我想用 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 日星期二 两次,我尝试过的每个语言环境都会发生同样的情况。我唯一配置的与区域设置相关的是以下内容(Spring MVC 项目):
@Bean
public CookieLocaleResolver localeResolver() {
Locale locale = new Locale("dk");
CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setDefaultLocale(locale);
return localeResolver;
}
是否应该将文本翻译成语言环境定义的语言,或者至少更改格式?知道我在这里做错了什么吗?我尝试了所有可以在网上找到的示例,但结果都是一样的。
我只想将范围更改为 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/>