Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSTL formatDate忽略区域设置_Java_Localization_Jstl - Fatal编程技术网

Java JSTL formatDate忽略区域设置

Java JSTL formatDate忽略区域设置,java,localization,jstl,Java,Localization,Jstl,我想用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 va

我想用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" />
上面的输出是2015年1月13日,星期二,两次,我尝试过的每种语言环境都是如此。我唯一配置的与locale相关的是以下内容(SpringMVC项目):


文本不应该被翻译成由语言环境定义的语言,或者至少格式应该改变吗?你知道我做错了什么吗?我尝试了我能在网上找到的每一个例子,但结果都是一样的。

我只需将范围更改为
会话
,如下所示

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

在法国的日期:

在美国的日期:

出于某种原因,它只在作用域设置为
会话时起作用。我很确定我已经试过了,但它确实有效!谢谢还有其他想法吗?我也有同样的问题,但我的站点不使用会话(它是无状态的)。因此scope=“session”不起作用-它实际上给出了页面不参与会话的错误。scope=“request”无效。
@Bean
public CookieLocaleResolver localeResolver() {
    Locale locale = new Locale("dk");

    CookieLocaleResolver localeResolver = new CookieLocaleResolver();
    localeResolver.setDefaultLocale(locale);

    return localeResolver;
}
<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/>