时间类型转换

通过时间去筛选查询出来的信息

错误信息

  public List GetStaPaperListAllByYearsUnite(Date year ,Date year1,String  sunite)
    {  
        StaPaperDAO up=new StaPaperDAO();
        List l=null;
        l=up.findByHQL("  from StaPaper as b where b.staauditing=1 and( b.staPtime between '+year+' and '+year1+') and b.units.ucoding like  '%"+sunite+"%' order by    b.staPid   desc");
        return l;
        
    }
    public List GetStaPaperListAllByYearsUnitePage(Date year ,Date year1, String  sunite,int pageSize, int iCurrentPage)
    {  
        StaPaperDAO up=new StaPaperDAO();
        List l=null;
        l=up.findByHQLPage("   from StaPaper as b where b.staauditing=1 and (b.staPtime between '+year+' and '+year1+') and b.units.ucoding like  '%"+sunite+"%'  order by    b.staPid   desc",pageSize,iCurrentPage);
        return l;
        
    }

 

      if(request.getParameter("ICK")!=null &&request.getParameter("txtUunits")!=null )
        {
            
            strUnite=request.getParameter("txtUunits").toString().trim();
            strYear=request.getParameter("txtyear").toString().trim();
            strYear1=request.getParameter("txtyear1").toString().trim();
            url="&ICK=1&txtUunits="+request.getParameter("txtUunits")+"&txtyear="+request.getParameter("txtyear")+"&txtyear1="+request.getParameter("txtyear");
             
        }
 
              int PageSize=10;
              int Page=1;
              int totalPage=1;
              int totalrecord=0;
              totalrecord=bll.GetStaPaperListAll().size();
              if(!strUnite.equals("0"))
              {
               totalrecord=bll.GetStaPaperListAllByYearsUnite(Date.valueOf(strYear),Date.valueOf(strYear1),strUnite).size();
              }
              
              
               if(totalrecord % PageSize==0)
              totalPage=totalrecord/PageSize;
              else
              totalPage=(int)Math.floor(totalrecord/PageSize)+1;
              if(totalPage==0)  totalPage=1;
              if(request.getParameter("Page")==null || request.getParameter("Page").equals(""))
              Page=1;
              else
              try
              {
                Page=Integer.parseInt(request.getParameter("Page"));
              }
              catch(java.lang.NumberFormatException e)
              {
              Page=1;
              }
              if(Page<1)  Page=1;
              if(Page>totalPage)  Page=totalPage;
              
 
 
 
        List<StaPaper>  myList=bll.GetStaPaperListAllByPage(PageSize,Page);
      if(!strUnite.equals("0"))
              {
               myList=bll.GetStaPaperListAllByYearsUnitePage(Date.valueOf(strYear),Date.valueOf(strYear1),strUnite,PageSize,Page) ;
              }

 这个问题怎么样解决?

现在变量类型是Date

用Timestamp 也不行

hibernate里面映射是Date ,

sql 2005 数据库表里面的staPtime类型是datetime

所以对于的时间是2010-12-11 00:00:00:0 页面文本框的取值是2010-12-11

 

这个日期控件生成的短日期类型
用SimpleDateFormat来转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2008-08-08 12:10:12");
具体请参考JDK API文档

另外 转换成DATE类型后并不会因为转换前的字符串是什么样子而不同 DATE类型的内部表示永远是一样的 所以你的第2条要求是没有意义的 数据库如何显示这个DATE类型只是数据库自己的关系 和DATE本身无关

如果你希望要自定义Date的显示 同样可是使用SimpleDateFormat类来实现
只需要
String date = sdf.format(new Date());
就可以了