我想在JSP页面上显示格式化的日期,所以我使用:
<fmt:formatDate pattern="MMM d" value="${myEvent.date}"/>
Run Code Online (Sandbox Code Playgroud)
它完美地运作.它在页面上显示为
Nov 28
Run Code Online (Sandbox Code Playgroud)
但是,当Google缓存它时会发生奇怪的事情 - 缓存页面上的日期显示如下:
2016-11-28 20:00:00.0
Run Code Online (Sandbox Code Playgroud)
有谁能解释一下?不应该在服务器上进行格式化吗?我的应用程序服务器(Tomcat)是否只将HTML发送到页面?谷歌如何知道这实际上是一个Java日期?
只是为了澄清,为了进入页面的缓存版本,我在Google上执行搜索,在搜索结果中显示我的页面,然后单击向下箭头并转到我页面的缓存版本.
ste*_*ian -1
显然,当请求没有“Accept-Language”HTTP 标头的 JSP 时,JSTLformatDate标记不会格式化日期,而是返回对象toString()的结果。Date
您可以通过使用cUrl获取页面源(而不是在 Chrome 中查看页面源)来验证这一点。
底线:如果您使用 JSTLformatDate标记并且希望在 Google 缓存中格式化日期,则应该显式设置区域设置。例如:
<fmt:setLocale value="en_US" />
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助别人。