数据库是SqlServer数据库,字段类型是datetime
//登录
public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = userService.findUserByUsername(username);
/*System.out.println("数据库时间:"+user.getRecentLoginTime());*/
boolean loginpass = userService.login(username,password);
if (loginpass == false){
return mapping.findForward("login_fail");
}else {
if (user.isDisabled()==false){
request.getSession().setAttribute("user",user);
Date recentLoginTime = new Date();
Timestamp timestamp = new Timestamp(recentLoginTime.getTime());
user.setRecentLoginTime(timestamp);
userService.updateUser(user,request);
/*System.out.println("时间:"+user.getRecentLoginTime());*/
logger.info("用户"+username+"登录成功");
return mapping.findForward("login_success");
} else {
return mapping.findForward("login_disabled");
}
}
}
debug的时候时间是对的
想知道怎么解决这个问题以及导致这个问题的原因
很显然setRecentLoginTime函数里面没处理好呗
你不放出代码来看我也猜不着你怎么写的呀
确定下数据库类型没问题,可以存有时间的值的话,直接new date不就好了么,再不行就在date类型字段上加个 @Temporal(TemporalType.TIMESTAMP) 注解试试