我正在使用显示标签来表格详细信息我想更改日期&用户本地浏览器设置的时间,数据库中的数据是UMT。如果用户来自印度,那么它将添加+5:30等。我该怎么做。我被困在这里。请帮帮我。
答案 0 :(得分:0)
你有没有试过这个?
Locale cLoc=request.getLocale();
Calendar cCal=Calendar.getInstance(cLoc);
TimeZone tz=cCal.getTimeZone();
//......
答案 1 :(得分:0)
派对有点晚了,但是如果其他人需要的话,仍然会在这里回答。
Display.tag在内部使用MessageFormatColumnDecorator
将MessageFormat
格式化程序应用于具有"格式"的所有列。参数集。
所以,你的选择是:
MessageFormatColumnDecorator
。不幸的是它在ColumnTag
代码中被包含在内并且不能很容易地被替换(装饰器被链接),所以你必须编译自己的Display.Tag jar副本,其中包含你的自定义装饰器。 在自定义装饰器中,使用以下示例代码更改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: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>
标记中以设置他们使用的时区。