问题描述
我的数据是时间是bigInter类型javaBean是Long类型Calendarc=Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH,-7);Longstart=c.getTime().getTime();Datedate=newDate();Longend=date.getTime();SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");//获取startend时间//获取一个String类型值"2008-08-11"Stringstart_date=request.getParameter("start_date");Stringend_date=request.getParameter("end_date");//startdate是java.util.date类型//查询结果是java.sql.date类型start_dateend_dateLongs1=(start_date==null?start:??Longs2=(end_date==null?end:???如何转换java.sql.date结果转换成long类型
解决方案
解决方案二:
选择日期的是一个java.sql类型然后传过来怎么弄啊小弟都头大了
解决方案三:
不明白你问什么大概是你可以所String的end_date转换成date,然后通过date再转换为longString转换成date就要写一段代码了
解决方案四:
是不会转型吗?
解决方案五:
查询出来就的String类型值是一断js选择日期他是个java.sql的方法保存的形式我转换SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Datedate2=sdf.parse(end_date);java.sql.DatesqlDate=newjava.sql.Date(date2.getTime());Longs1=sqlDate.getTime();老是出错郁闷
解决方案六:
Stringstr="2006-11-1";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");try{java.util.DateuDate=sdf.parse(str);java.sql.DatesqlDate=newDate(uDate.getTime());System.out.println(sqlDate.toString());}catch(ParseExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}
sdf.parse的时候有个异常是要捕获的,然后就是你end_date的格式要和你format里面的格式"yyyy-MM-dd"的格式要一直不然就会报转换异常。goodluck
解决方案七:
SimpleDateFormat就是做这个的
解决方案八:
我给thorws了应该不是这个问题
解决方案九:
Stringstr="2006-11-1";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");这两个格式要正确,也就是如果你的format格式是yyyy/MM/dd那么转换的时候就会报异常但是如果你是yyyy-MM-dd,也就是和你的页面传过来的字符串的格式一致比如说上面的str就不会报异常放个断点,看你传过来的end_data的格式是不是和你format里面的一致或者你报错报的是什么错,贴出来大家看看
解决方案十:
严重:Servlet.service()forservletactionthrewexceptionjava.text.ParseException:Unparseabledate:"2008-08-01"atjava.text.DateFormat.parse(DateFormat.java:337)atcom.happygo.manager.web.struts.action.User_account_manageAction.list(User_account_manageAction.java:108)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atorg.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)atorg.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)atorg.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)atorg.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)atorg.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)atorg.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)atorg.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:710)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:803)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)atorg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173)atorg.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)atorg.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)atjava.lang.Thread.run(Thread.java:619)传过来格式正确的
解决方案十一:
publicstaticvoidmain(String[]args){Stringstr="2008-08-01";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");try{java.util.DateuDate=sdf.parse(str);java.sql.DatesqlDate=newDate(uDate.getTime());System.out.println(sqlDate.getTime());}catch(ParseExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}
这就奇怪了,我用你上面的时间测试过,没问题的啊
解决方案十二:
崩溃了~郁闷了真不知所错了
解决方案十三:
把你Action的代码贴出来看看
解决方案十四:
publicActionForwardlist(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsParseException{Calendarc=Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH,-7);Longstart=c.getTime().getTime();Datedate=newDate();Longend=date.getTime();//获取startend时间Stringstart_date=request.getParameter("start_date");Stringend_date=request.getParameter("end_date");Longs1=null;if(start_date==null){s1=start;}else{SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Datedate3=sdf.parse(start_date);java.sql.DatesqlDate=newjava.sql.Date(date3.getTime());s1=sqlDate.getTime();}Longs2=null;if(end_date==null){s2=end;}else{SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Datedate2=sdf.parse(end_date);java.sql.DatesqlDate=newjava.sql.Date(date2.getTime());s2=sqlDate.getTime();}//date类型转换lang类型//获取金额充值总额0,1提现总额//充值总额BigDecimalvoucher_amount=this.userAccountService.search(s1,s2,(Byte)(byte)0);request.setAttribute("userAmonut",voucher_amount);//提取总额BigDecimalto_cash_amount=this.userAccountService.search(s1,s2,(Byte)(byte)1);request.setAttribute("toCash",to_cash_amount);//用户金额情况Listlist=this.accountLogService.search(s1,s2);for(inti=0;i<list.size();i++){Object[]userMoneys=(Object[])list.get(i);BigDecimaluser_money=(BigDecimal)userMoneys[0];//用户可用余额BigDecimalfrozen_money=(BigDecimal)userMoneys[1];//用户冻结金额request.setAttribute("userMoney",user_money);request.setAttribute("frozeMoney",frozen_money);}//交易金额和积分使用金额ListorderList=this.orderInfoService.search(s1,s2);for(inti=0;i<orderList.size();i++){Object[]userMoneys=(Object[])list.get(i);BigDecimalsurplus=(BigDecimal)userMoneys[0];//交易使用余额BigDecimalintegral_money=(BigDecimal)userMoneys[1];//积分使用余额request.setAttribute("sur",surplus);request.setAttribute("inte",integral_money);}request.setAttribute("start",start);request.setAttribute("end",end);returnmapping.findForward("toList");}
解决方案十五:
因为你这里用到了两种date所以建议你写代码的时候创建的时候要把包名家上才能区分到底是哪种date像这种Datedate=newDate();Datedate3=sdf.parse(start_date);根本就不知道是哪种date。
解决方案:
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");看看你的这个format里面的字符串多了一个空格去掉
解决方案:
都改过来了还是报那个错误2009-11-310:15:57org.apache.catalina.core.StandardWrapperValveinvoke严重:Servlet.service()forservletactionthrewexceptionjava.text.ParseException:Unparseabledate:"2009-11-09"郁闷死了
解决方案:
你的页面两个地方的format字符串都要改啊你肯定是只改了一个地方我测过你的代码没问题的publicstaticvoidmain(String[]args)throwsParseException{Calendarc=Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH,-7);Longstart=c.getTime().getTime();java.util.Datedate=newjava.util.Date();Longend=date.getTime();//获取startend时间Stringstart_date="2008-10-08";Stringend_date="2008-10-09";Longs1=null;if(start_date==null){s1=start;}else{SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");java.util.Datedate3=sdf.parse(start_date);java.sql.DatesqlDate=newjava.sql.Date(date3.getTime());s1=sqlDate.getTime();}Longs2=null;if(end_date==null){s2=end;}else{SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");java.util.Datedate2=sdf.parse(end_date);java.sql.DatesqlDate=newjava.sql.Date(date2.getTime());s2=sqlDate.getTime();}System.out.println("s1:="+s1);System.out.println("s2:="+s2);}
解决方案:
OK了谢谢了哎~郁闷不过还有一个问题哈~我的数据库保存的是1242140736是2008-08-01但是我页面选择js以后转换以后就不long的值就不不是这个了
解决方案:
你是说你的数据库里面的值和你页面上选择的时间转成的long值不对应?但是你插入数据库的时候是从页面读的long插入的应该不会不同吧没碰到过这种问题
解决方案:
BigInteger保存的时间是不是保存的格式和位数有点不同吗
解决方案:
不用simpledateformat直接用java.sql.Date的valueOf(s)string的格式为yyyy-mm-dd就可以转换成date类型的
解决方案:
你想两个Long值吧。你已差不多了,最后赋值时改一下啊Longs1=(start_date==null?start:java.sql.Date(start_date).getTime());Longs2=(end_date==null?end:java.sql.Date(end_date).getTime());
解决方案:
引用5楼gjsong的回复:
JavacodeStringstr="2006-11-1";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");try{java.util.DateuDate=sdf.parse(str);java.sql.DatesqlDate=newDate(uDate.getTime());System.out.println(sqlDate.toString());}catch(ParseExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}sdf.parse的时候有个异常是要捕获的,然后就是你end_date的格式要和你format里面的格式"yyyy-MM-dd"的格式要一直不然就会报转换异常。goodluck
bingo
解决方案:
ding
解决方案:
引用10楼gjsong的回复:
Javacodepublicstaticvoidmain(String[]args){Stringstr="2008-08-01";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");try{java.util.DateuDate=sdf.parse(str);java.sql.DatesqlDate=newDate(uDate.getTime());System.out.println(sqlDate.getTime());}catch(ParseExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}应该是这样的}这就奇怪了,我用你上面的时间测试过,没问题的啊
解决方案:
学习了