2013-03-04 90 views
0

我使用表的详细信息显示标签,我想&时间更改日期用户的本地浏览器设置本地时间,数据在DB是UMT。如果用户来自印度,那么它将增加+5:30等。我怎么能做到这一点。我困在这。请帮帮我。显示标签显示用户的浏览器jsp的

回答

0

你有没有尝试过这样的?

Locale cLoc=request.getLocale(); 
Calendar cCal=Calendar.getInstance(cLoc); 
TimeZone tz=cCal.getTimeZone(); 
//...... 
+0

三江源非常答复..但我怎么能实现它在显示标签栏。我的数据来自resultset。请建议。请提供任何代码片段。 – 2013-03-05 06:05:01

+0

对不起,did'nt使用显示标记。找到一种方法来传递参数,或调用显示标记内的方法。但上述代码行完美工作在jsp中。 – 2013-03-05 06:15:21

0

晚了一点晚了,但仍然回答在这里,以防万一任何人需要它。

Display.tag在内部使用MessageFormatColumnDecoratorMessageFormat格式化程序应用于具有“格式”参数集的所有列。

所以,你的选择是:

  1. 创建自己的自定义MessageFormatColumnDecorator。很遗憾,在ColumnTag代码inined并不能很容易地更换(装饰是链接),所以你必须自己编译Display.Tag罐子的副本,里面有您的自定义装饰。

在您的定制的装饰使用以下示例代码来更改MessageFormat的时区:

TimeZone tz = //get your timezone here 
Object [] formats = format.getFormats(); //'format' is MessageFormat instance 
for (int i = 0; i < formats.length; i++) { 
    if (formats[i] instanceof SimpleDateFormat) { 
    ((SimpleDateFormat)formats[i]).setTimeZone(tz); 
    } 
} 
  • 第二个选择是使用<fmt:formatDate> Display.tag柱内标签来格式化输出。
  • 示例代码:

    <display:table name="dateList" id="object"> 
        <display:column title="Date"> 
        <fmt:formatDate value="${object.date}" type="both" dateStyle="long" timeStyle="long"/> 
        </display:column> 
    </display:table> 
    

    您可以设置默认的请求语言环境<fmt:formatDate>或包起来<fmt:timeZone>标签来设置他们使用一个时区。