java.text.ParseException: Unparseable date: ""--異常6

情景:在struts2項目在進行時間段查詢時,action處報瞭如下java.text.ParseException: Unparseable date: "" ,查看一下代碼沒有問題,在進行數據接收時進行判斷,但是沒有得到想要結果,有些鬱悶的,解決後在此記錄一下:

[1]之前報錯代碼:  if (bgndate!=null&&bgndate!=""&&enddate!=null && enddate!="")) 就是在這裏出現,請求時間爲空時,按理不該走的,實際卻走了,那肯定是我這個判斷有問題啦


    public String yaoqinglist() throws Exception {
        try{
             //bgndate 和 enddate 傳過來是字符串的類型

            ActWork actWork=new ActWork();
            // 小寫的mm表示的是分鐘
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

            if (bgndate!=null&&bgndate!=""&&enddate!=null && enddate!="")) {

                Date bDate = sdf.parse(bgndate);
                Date eDate = sdf.parse(enddate);
                String format = sdf.format(bDate);
                String startTime  = format.replace("-", "");// 去特殊字符
                actWork.setStartTime(startTime);//展會開始時間 如:20190401
         
                String format1 = sdf.format(eDate);// 去特殊字符
                String endTime = format1.replace("-", "");
                actWork.setEndTime(endTime);//展會結束時間 如:20190430
           
            }
            ....省略

          }catch (Exception e){
            log.error(e.toString(), e);
            return ERROR;
        }
        return "worklist";

[2]尋找原因:java數據類型的使用用錯了,尷尬的不行,java 基礎很重要呀 !我們都知道 ,java 分爲基礎數據類型(byte,short,char,int,long,float,double,boolean  )和複合類型(String ,Intger,Long 等),基礎類型使用"=="比較,複合類型使用"equals"進行比較,而我使用的變量是String類型,但是我用如bgndate!=""這就肯定不行了,使用equals就可以了。

[3]  if (bgndate!=null&&!bgndate.equals("") &&enddate!=null&& !enddate.equals("")) 解決如下:


    public String yaoqinglist() throws Exception {
        try{
             //bgndate 和 enddate 傳過來是字符串的類型

            ActWork actWork=new ActWork();
            // 小寫的mm表示的是分鐘
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

            if (bgndate!=null&&!bgndate.equals("") &&enddate!=null&& !enddate.equals("")) {

                Date bDate = sdf.parse(bgndate);
                Date eDate = sdf.parse(enddate);
                String format = sdf.format(bDate);
                String startTime  = format.replace("-", "");// 去特殊字符
                actWork.setStartTime(startTime);//展會開始時間 如:20190401
         
                String format1 = sdf.format(eDate);// 去特殊字符
                String endTime = format1.replace("-", "");
                actWork.setEndTime(endTime);//展會結束時間 如:20190430
           
            }
            ....省略

          }catch (Exception e){
            log.error(e.toString(), e);
            return ERROR;
        }
        return "worklist";

OK  就到這裏嘍!(^_^)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章