全局处理异常捕获 报错

代码

public Map<String, Object> getMyRolls(JSONObject head,JSONObject body)  throws Exception {
             
         // 业务信息
         Map<String, Object> attributes=new HashMap<String, Object>();
         
         //cityCode 
     //    String cityCode=head.optString("cityCode");
     //    cityCode=GetCItyCode.getCityCode(cityCode);
         
         String page=body.optString("page");
         String rows=body.optString("rows");
         int type=body.optInt("type");
         
         String token=head.optString("token");
        Object object=UserCacheManage.getAppUser(token);
            
        UserCache user=(UserCache)object;
        String userId="4028668150c6aedb0150c6ddde750005";
        HhUserEntity hhUserEntity=super.getEntity(HhUserEntity.class, userId);
        if(hhUserEntity!=null){
            
            String nowTime=DateUtils.formatTime();

            String queryString = "SELECT  COUNT(c.couponname), c.couponname,c.couponfee/100,c.pic1_path,date_format(c.endtime,'%Y-%c-%d') as endTime FROM couponpublish c,couponpool s WHERE s.pubid=c.pubid AND s.owner='"+userId+"'";
            String whereString="";
            //优惠卷类别  1.可用;2.历史
            if(type==1){
                whereString=whereString+" and ( '"+nowTime+"' between c.starttime and c.endtime ) and  s.status=3 ";
            }else{
                whereString=whereString+" and (( '"+nowTime+"' > c.endtime ) or s.status>3  )";
            }
            
            String orderString=" order by c.updatetime ";
         
            int offset=PagerUtil.getOffset(Integer.valueOf(page),Integer.valueOf(rows));
            List<Map> list=super.findListbySqlReturnMapByPage(queryString+whereString, offset, Integer.valueOf(rows));
            String flag = "";
            Map e = new HashMap<String, Object>();
            String endTime = (String) list.get(0).get("endTime");
            long now= Long.parseLong(nowTime);
            long end = Long.parseLong(endTime);
            long f = now-end;
            if(f>3){
                e.put("flag",new String("过期"));
                list.add(e);
            }
           
             System.out.println(list);        
            attributes.put("coupons", list);
            
        }else{
            throw new InterfaceException(new ErrorBean(ErrorCode.USER_NO_LOGIN));
        }
        
        return  attributes;
     }

报错:
[org.jeecgframework.core.common.exception.GlobalExceptionResolver]全局处理异常捕获:
java.lang.NumberFormatException: For input string: "2016-03-15 10:18"

at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at com.sendiy.hh.client.service.impl.ClientMyCouponsServiceImpl.getMyRolls(ClientMyCouponsServiceImpl.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy71.getMyRolls(Unknown Source)
at com.sendiy.hh.client.controller.GetMyRollsController.getMyRolls(GetMyRollsController.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)    

我加上
String endTime = (String) list.get(0).get("endTime");
        long now= Long.parseLong(nowTime);
        long end = Long.parseLong(endTime);
        long f = now-end;
        if(f>3){
            e.put("flag",new String("过期"));
            list.add(e);
        } 
        这几行代码之后报错,我要endtime和现在时间是不是差3天。    
阅读 6.8k
1 个回答

字符串 "2016-03-15 10:18" 直接转时间戳吗?

传统:先转成date,然后getTime,时间戳层面上进行比较
新:

    SimpleDateFormat toFormate = new SimpleDateFormat("yyyy-MM-dd ");
    Calendar cal = Calendar.getInstance();
    String now = toFormate.format(cal.getTime());
    cal.add(Calendar.DATE, -1);
    String yesterday = toFormate.format(cal.getTime());
    cal.add(Calendar.DATE, -7);
    String weeked = toFormate.format(cal.getTime());
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题