我在Mysql数据库中有字段 datetime 。
例如,我用下一个Java代码存储付款日期:
payment.setCreatedOn(new Date(System.currentTimeMillis()));
在我的视图图层中,我使用fmt:formatDate格式化日期:
<fmt:formatDate value="${payment.createdOn}" pattern="EEE, dd MMM yyyy HH:mm:ss"/>
我的服务器在伦敦,我的应用程序的用户在维也纳。显示的时间可能因时区不同而延迟。我可以在fmt:formatDate中使用 timeZone 参数。
timeZone:时区 表示格式化的时间。
在Google中搜索后,我认为 Europe / Vienna 的值对 timeZone 参数有效。
有谁知道有效的timeZone字符串中是否有列表?
答案 0 :(得分:1)
塞尔吉奥 - 我相信你早就发现它了......
这是homepage for the Olson database或'zoneinfo',它是TZ信息的权威来源。
这是浏览区域的nice wiki 。
答案 1 :(得分:0)
这是IBM JDK的列表,有点过时但有完整列表:
答案 2 :(得分:0)
您需要使用国际时间(UTC / Zulu)添加以下计划客户端时间使用,例如“GMT + 1”。见这个例子。
将此参数作为参数放在服务器中以设置UTC时间使用,在本例中为tomcat:
<强> -Duser.timezone = “UTC”强>
/* Java */
@RequestMapping(value = "/web", method = { RequestMethod.POST, RequestMethod.GET })
public String web(Model model, HttpSession session, Locale locale) {
Date today = new Date();
model.addAttribute("currentTime", today);
model.addAttribute("timezone", "GMT+1");
return "web";
}
要显示日期,请选择所需的图案(属性)
/* JSP web */
<fmt:timeZone value="${timezone}">
<spring:message code="date_format_dateMin" var="pattern"/>
<fmt:formatDate value="${currentTime}" timeZone="${timezone}" pattern="${pattern}" var="searchFormated" />
<span class="innerLabel">${searchFormated}</span>
</fmt:timeZone>
/* Properties */
date_format_dateMin=yyyy/MM/dd HH:mm
date_format=yyyy/MM/dd HH:mm:ss
date_format2=yyyy/MM/dd
date_format3_js=yy/mm/dd
date_format4_time=HH:mm
date_format4=dd/MM/yyyy HH:mm:ss