首页 文章

无法将格式为“dd / MM / yyyy HH:mm:ss”的日期字符串解析为JODA LocalDateTime

提问于
浏览
-2

我无法将格式为“dd / MM / yyyy HH:mm:ss”的日期字符串解析为JODA LocalDateTime .

我得到以下异常: java.lang.IllegalArgumentException: Invalid format: "01/01/2017 00:30:00" is malformed at "/01/2017 00:30:00"

请帮我修复此错误 .

见下面我的代码:

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 java.lang.IllegalArgumentException:格式无效:“01/01/2017 00:30:00”在org.joda.time.format的“/ 01/2017 00:30:00”格式错误.dateTimeFormatter.parseLocalDateTime(DateTimeFormatter.java:854)位于org.joda.time.LocalDateTime.parse(LocalDateTime.java:168)org.joda.time.LocalDateTime.parse(LocalDateTime.java:157)的module1.TOUCalculatorCore . 在module1.LaunchTOUCalcTool.submitButtonActionPerformed(LaunchTOUCalcTool.java:807)上的module1.LaunchTOUCalcTool.submitButtonActionPerformed(LaunchTOUCalcTool.java:807)上的calculateTOUValues(TOUCalculatorCore.java:135)在module1.LaunchTOUCalcTool $ 10.actionPerformed(LaunchTOUCalcTool.java:418)的module1.LaunchTOUCalcTool.access $ 900(LaunchTOUCalcTool.java:32) javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2348)javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)at javax.swing .defaultButtonModel.setPressed(DefaultButtonModel.java:259)at javax.swing.plaf.basic.BasicButton Listener.mouseReleased(BasicButtonListener.java:252)at java.awt.Component.processMouseEvent(Component.java:6533)at java.awt.Component.processEvent(Component,javax.swing.JComponent.processMouseEvent(JComponent.java:3324)) .java:6298)at java.awt.Container.processEvent(Container.java:2236)at java.awt.Component.dispatchEventImpl(Component.java:4889)at java.awt.Container.dispatchEventImpl(Container.java:2294) java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)位于java.awt的java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)的java.awt.Component.dispatchEvent(Component.java:4711) . 位于java.awt.Comp的监视器上的java.awt.Window.dispatchEventImpl(Window.java:2746)中的java.awt.Container.dispatchEventImpl(Container.java:2280)中的LightweightDispatcher.dispatchEvent(Container.java:4466) .java:4711)在java.awt.EventQueue.access上的java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)java.awt.EventQueue $ 3上的$ 500(EventQueue.java:97) .run(EventQueue.java:709)java.awt.EventQueue $ 3.run(EventQueue.java:703)at java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain . java:80)java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)java.awt.EventQueue $ 4.run(EventQueue.java:731)at java.awt.EventQueue $ 4.run(EventQueue.java) :729)java上的java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)中的java.security.AccessController.doPrivileged(Native Method),位于java的java.awt.EventQueue.dispatchEvent(EventQueue.java:728) . 位于java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)的awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)位于java.awt.EventDispatchThread.pumpEvents的java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) (EventDispatchThread.java:1 01)java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)}

1 回答

  • 1

    修复了指定格式的问题 . 下面的代码工作,:)

    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"));
    

    谢谢@thomas Klager

相关问题