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/>