자바 문자열 을 시간 Unparseable date 로 변환 하 는 중 오류 가 발생 했 습 니 다.

오늘 코드 를 쓸 때 문자열 을 시간 으로 바 꿀 때 이런 문제 가 발생 했 습 니 다.
java.text.ParseException: Unparseable date: "2017-1-1 00:00:00"

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date start = df.parse(startTime);
        Date stop = df.parse(stopTime);
        long timeSpan = stop.getTime() - start.getTime();
        long hours = timeSpan / (3600 * 1000);
저 는 위의 코드 를 통 해 들 어 오 는 연 결 된 시간의 차 이 를 계산 합 니 다.실행 할 때 위의 문제 가 발생 할 수 있 습 니 다.바 이 두 는 시간 전환 을 할 때 문자열 의 길 이 를 일일이 대응 해 야 합 니 다.
즉,이'yyy-MM-dd'와 길이 가 일치 해 야 한다.예 를 들 어 2013-1-1 을 시간 으로 바 꾸 려 면'2013-01-01'이 라 고 써 야 한다.
그리고 전환 에 성공 할 수 있 습 니 다!
java.text.ParseException:Unparseable date:"--이상 6
상황:
struts 2 프로젝트 가 시간 대 조 회 를 진행 할 때 action 처 는 다음 과 같은 java.text.Parse Exception: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]원인 찾기:
자바 데이터 형식의 사용 이 잘못 되 었 습 니 다.어색 하면 안 됩 니 다.자바 기반 이 중요 합 니 다!자 바 는 기본 데이터 형식(byte,short,char,int,long,float,double,boolean)과 복합 형식(String,Inter,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 여기까지!(^ ^)
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기