java - Java 中日期的不确定行为

标签 java hibernate spring-mvc java-7

大约两年前,我部署了一个项目,并且在 Java 中遇到了一个奇怪的问题。

以下是我的代码行,适用于除 2015 年 12 月 29 日之外的所有日期 在 Controller 中

@RequestMapping(value = "/user/viewTimeSheet")
public ModelAndView viewtimesheet(ModelMap model,@RequestParam(value = "msg", required = false) String msg,@RequestParam(value = "error", required = false) String error) {
    if(SessionManagement.isSessionAlive()!=true)
    {
        return new ModelAndView("redirect:../pleaseLogin");
    }
    if (error != null) {
        model.put("error", error);
    }

    if (msg != null) {
        model.put("msg", msg);
    }
    System.out.println(new SimpleDateFormat("YYYY-MMM-dd").format(new Date()));
    model.put("total", timeSheetTempDAO.getCurrentDayHours(SessionManagement.getCurrentUserId(),new SimpleDateFormat("YYYY-MMM-dd").format(new Date())));
    model.put("timeSheetTempList",timeSheetTempDAO.getDailyTimeSheets(SessionManagement.getCurrentUserId()));
    return new ModelAndView("viewTimeSheetTempTile");
}

在 DAO 中

@Override
@SuppressWarnings("unchecked")
public List<TimeSheetTemp> getDailyTimeSheets(int userId) {
    List<TimeSheetTemp> list = new ArrayList<TimeSheetTemp>();
    Session session= HibernateUtil.getSessionFactory().openSession();
    Transaction tx = session.beginTransaction();
    Query q = session.createQuery("FROM TimeSheetTemp t where userId="+userId +" and date='"+new SimpleDateFormat("YYYY-MMM-dd").format(new Date())+"' order by id");
    list = (List<TimeSheetTemp>) q.list();
    tx.commit();
    session.close();
    for(TimeSheetTemp t : list){
        if(t.getStatus().getId()!=1){
            if(t.getReviewedBy()!=null && t.getReviewedBy()!=0){
                t.setReviewedByName(getFullName(t.getReviewedBy()));
            }
        }
    }
    return list;
}

java date error

你可以在控制台中看到我的日期是 2016 年,而我的系统日期是 2015 年!!!

还在我的数据库中添加了 2015 年。有人可以解释一下为什么会发生这种情况吗?

最佳答案

格式中的 Y 表示年周,而不是年日。

使用 y 代替。

就您而言:

new SimpleDateFormat("yyyy-MMM-dd")

关于java - Java 中日期的不确定行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34510043/

相关文章:

java - Selection 根据 Shoe Id 升序排列存储在 Array 中的鞋子

java - 尝试使用 Hibernate 从引用表中检索数据时出现问题。

html - 如何在 spring mvc Controller 中接收 html 复选框值

java - redis中java的setIfAbsent(K,V, ExpiryTimeout)是原子的吗?

java - 提取单词 "Class"之后的所有第一个单词

java - Hibernate Entity 排序列配置

java - 如何使用spring mvc在浏览器中下载文件?

java - 如何在 spring 4 中覆盖 StringHttpMessageConverter DEFAULT_CHARSET 以使用 UTF8

java - 如何以编程方式注册 JSF 托管 bean?

java - Spring Boot存储库不返回真实实体