2017-04-01 1 views
-2

에 "dd/MM/yyyy HH : mm : ss"형식의 날짜 문자열을 구문 분석 할 수 없습니다 "dd/MM/yyyy HH : mm : ss"형식의 날짜 문자열을 구문 분석 할 수 없습니다 JODA LocalDateTime. java.lang.IllegalArgumentException가 :JODA LocalDateTime

내가 예외 아래에 무엇입니까 잘못된 형식 : "2017년 1월 1일 0시 30분 0초는" "/ 01/2017 0시 30분 0초"

에, 부정한다

이 오류를 해결하는 데 도움을주십시오.

내 코드 아래 참조 :

public void calculateTOUValues(Date startDate, Date eDate, ArrayList<Double> csvDataPerChannel) { 

    DateTimeFormatter format1 = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss"); 

    SimpleDateFormat format01 = new SimpleDateFormat("dd/MM/yyyy"); 
    String startDateString = format01.format(startDate) + " 00:30:00"; //concatenate 00:30:00 
    String endDateString = format01.format(eDate) + " 00:00:00"; //concatenate 00:00:00 

    LocalDateTime strDate = LocalDateTime.parse(startDateString); //exception encountered at this line of code 
    LocalDateTime endDate = LocalDateTime.parse(endDateString); 
} 

이 코드 실행에 예외 아래에 무엇입니까 :

출력 : {SEVERE : 널 (null) 예외 : IllegalArgumentException : 잘못된 형식 : "01/01/2017 00:30:00 "의 형식이"/ 01/2017 00:30:00 "인 경우 org.joda.time.format.DateTimeFormatter.parseLocalDateTime (DateTimeFormatter.java:854) at org.joda입니다. time.LocalDateTime.parse (LocalDateTime.java:168) at module1.TOUCalculatorCore.calculateTOUValues ​​(TOUCalculatorCore.java:135) module1.LaunchTOUCalcTool.submitButtonActionPerformed (LaunchTOUCalcTool.java:807)에서 모듈 1에 에서 org.joda.time.LocalDateTime.parse (LocalDateTime.java:157). LaunchTOUCalcTool.access $ (900) 있는 javax.swing에서 javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:2022)에서 module1.LaunchTOUCalcTool $ 10.actionPerformed (LaunchTOUCalcTool.java:418) 에서 (LaunchTOUCalcTool.java:32) .AbstractButton $ Handler.actionPerformed (AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:402) 012 java.awt.Component.processMouseEvent에서 javax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:252) 에서 javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:259) (성분에 3,516,. java : 6533) at 에있는 javax.swing.JComponent.processMouseEvent (JComponent.java:3324) java.awt.Component.processEvent (Component.java:6298) at java.awt.Container.processEvent (Container.java : 2236) at 에있는 java.awt.Component.dispatchEventImpl (Component.java:4889) 에있는 java.awt.Container.dispatchEventImpl (Container.java:2294) java.awt.Component.dispatchEvent (Component.java:4711) 에 있습니다. java.awt.LightweightDispatch java.awt.Container의 java.awt.LightweightDispatcher.dispatchEvent에서 (Container.java:4466) 에서 er.retargetMouseEvent java.awt.LightweightDispatcher.processMouseEvent (Container.java:4525)에서 (Container.java:4888) .dispatchEventImpl (Container.java:2280) at 에있는 java.awt.Window.dispatchEventImpl (Window.java:2746) java.awt.Component.dispatchEvent (Component.java:4711) at java.awt.EventQueue.dispatchEventImpl (EventQueue.java:758) at java.awt.EventQueue.access $ 500 (EventQueue.java:97) at java.awt.EventQueue $ 3.run (EventQueue.java:709) at java.awt.EventQueue $ 3. run (EventQueue.java:703) at java.security.AccessController.doPrivileged (네이티브 메소드)에서 java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:80) at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:90) at java.awt.EventQueue $ 4.run (EventQueue.java:731) at java.awt.EventQueue $ 4.run (EventQueue.java:729) at java. java.awt.EventDispatchThread에서 java.awt.EventQueue.dispatchEvent (EventQueue.java:728)에서 java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:80) 에서 (기본 방법) security.AccessController.doPrivileged .pumpOneEventForFilters java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:105)에서 java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread.java:116)에서 (EventDispatchThread.java:201) 0,123,516 java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:101) java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:93) java.awt.EventDispatchThread.run에서 에서 에서(EventDispatchThread.java:82) }

+0

@thomas :)

LocalDateTime strDate = LocalDateTime.parse(startDateString, DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss")); LocalDateTime endDate = LocalDateTime.parse(endDateString, DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss")); 

감사했다. 기계는 아직 지적인 것이 아닙니다. –

+1

예외를 살펴보십시오. 구문 분석하려는 값의 날짜와 시간 사이에는 공백이 없습니다. 이는 실제 코드가 표시된 코드와 같지 않다는 것을 의미합니다. [mcve]를 입력하십시오. –

+0

또한, 시작 날짜와 종료 날짜가 이미 있고 * LocalDateTime 값을 원한다면 왜 포맷하고 파싱합니까? 불필요한 문자열 변환은 피해야합니다. –

답변

1

형식을 지정하는 문제가 해결되었습니다. 아래의 코드는 인간은 스택 오버 플로우에 대한 질문에 대답 있습니다 Klager

관련 문제