Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
Jsp 使用值“设置语言环境”;en“U FR”;_Jsp_Jstl - Fatal编程技术网

Jsp 使用值“设置语言环境”;en“U FR”;

Jsp 使用值“设置语言环境”;en“U FR”;,jsp,jstl,Jsp,Jstl,嗨,我是JSP新手,如果我的问题很琐碎,我很抱歉。我试图研究答案,但运气不好 有人能解释一下为什么下面的方法行不通吗 <fmt:setLocale value="en_FR" /> <fmt:formatDate value="${dt}" type="both" var="now" />${now} ${now} 当前日期/时间将以en_US语言环境显示 谢谢en_FR的意思是:在英语中,带有法国英语的特殊性。由于英语在法国不是官方语言,JVM在法国没有针对英

嗨,我是JSP新手,如果我的问题很琐碎,我很抱歉。我试图研究答案,但运气不好

有人能解释一下为什么下面的方法行不通吗

<fmt:setLocale value="en_FR" />  
<fmt:formatDate value="${dt}" type="both" var="now" />${now}

${now}
当前日期/时间将以en_US语言环境显示

谢谢

en_FR
的意思是:在英语中,带有法国英语的特殊性。由于英语在法国不是官方语言,JVM在法国没有针对英语语言环境的任何特定设置,因此它会回到
en
:英语

由于
en
en_US
之间的日期没有任何不同,因此格式是相同的

下面是一些测试,以及它显示的内容:

<fmt:setLocale value="en_FR" />
In English (FR): <fmt:formatDate value="${dt}" type="both" var="now" />${now}<br/>
<fmt:setLocale value="en_US" />
In English (US): <fmt:formatDate value="${dt}" type="both" var="now" />${now}<br/>
<fmt:setLocale value="en_UK" />
In English (UK): <fmt:formatDate value="${dt}" type="both" var="now" />${now}<br/>
<fmt:setLocale value="en" />
In English: <fmt:formatDate value="${dt}" type="both" var="now" />${now}<br/>
<fmt:setLocale value="fr" />
In French: <fmt:formatDate value="${dt}" type="both" var="now" />${now}<br/>

如果你想比较法国和美国的日期,我会做如下

<jsp:useBean id="now" class="java.util.Date"  />

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

你好,谢谢你的回答。只是为了纠正一件事,当“en”为Local时,它也默认为US模式。要获得英国语言,语言环境必须是“en_GB”。当然,它遵循语言。语言代码用于选择语言。然后,使用国家代码来区分该国家。一种语言在许多国家使用,一个国家使用多种语言。不久前我写了一篇关于这一点的博文:你的语言环境代码定义是错误的:我用java做了一些测试,结论很清楚:“en_FR”是合法的,意思是英语,位于法国。例如,一个特定日期的GMT日期为2014年2月7日18:28:00,如果区域设置为“en_UK”,则显示为“Fri,2014年2月7日18:28:00 GMT”;如果区域设置为“fr_fr”,则显示为“ven.,07 févr.2014年19:28:00 CET”;如果区域设置为“en_fr”,则显示为“Fri,2014年2月7日19:28:00 CET”。呃,我从哪里得知该区域设置是非法的?
<jsp:useBean id="now" class="java.util.Date"  />

<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/>
Date in France: mercredi 14 janvier 2015  
Date in US: Wednesday, January 14, 2015