fmt:formatDate和timeZone

时间:2009-05-11 17:00:05

标签: mysql timezone jstl

我在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字符串中是否有列表?

3 个答案:

答案 0 :(得分:1)

塞尔吉奥 - 我相信你早就发现它了......

这是homepage for the Olson database或'zoneinfo',它是TZ信息的权威来源。

这是浏览区域的nice wiki

答案 1 :(得分:0)

答案 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