现在,我的数据库存储事务记录并保存在事务日期和时间中,但现在我想通过添加8小时但不保存到数据库中来显示它。我该怎么做呢?..
我想只是对jsp进行更改。
目前,检索时间的代码是
<td align=right><%= tradePosition[i].getDate()!=null? tradePosition[i].getDate() :"" %></td>
答案 0 :(得分:0)
根据你的澄清:
<%
Timestamp time = null;
if (tradePosition[i].getDate() != null) {
time = new Timestamp(tradePosition[i].getDate().getTime() + 8 * 60 * 60 * 1000);
}
%>
<td align=right><%= time != null ? time : "" %></td>
基于此question。
这是时间戳类API。
请注意这种方法可能会遇到一些问题,如问题所指出的那样,跳跃时间和时区有一些问题,但对于非关键用例来说,这通常是足够好的。如果这对于正确处理很重要,我建议保留一些正确的Date变量而不是Timestamp(或者可以将它作为@transient
中的时间戳添加到类中。)
答案 1 :(得分:0)
理想情况下,您的时间添加应该在重定向到JSP的Servlet中完成。
if (tradePosition[i].getDate() != null) {
Calendar cal = Calendar.getInstance();
cal.setTime(tradePosition[i].getDate());
cal.add(Calendar.HOUR, 8);
request.setAttribute("displayDate", cal.getTime());
}
然后JSP将使用JSP EL显示日期
<td align=right>${displayDate}</td>
请注意您不再需要使用EL进行笨拙的null
检查。
如果您正在使用Timestamp
,请使用毫秒来设置初始时间。
cal.setTimeInMillis(tradePosition[i].getDate().getTime());
cal.add(Calendar.HOUR, 8);