О гггг-ММ-дд строки формата даты, решает проблемы, возникающие LocalDateTime

гггг-ММ-дд -> LocalDateTime

Непосредственно к анализу строки даты в формате YYYY-MM-дд будет брошен в LocalDateTime

  попробовать { 
            LocalDateTime LocalDateTime = LocalDateTime.parse ( "2019-05-27", DateTimeFormatter.ofPattern ( "гггг-ММ-дд" )); 
            System.out.println (LocalDateTime); 
        } Задвижка (Исключение ех) { 
            ex.printStackTrace (); 
        }

Выдает исключение следующим

java.time.format.DateTimeParseException: Текст «2019-05-27» не может быть разобран: Невозможно получить LocalDateTime из TemporalAccessor: {}, ИСО решил 2019-05-27 типа java.time.format.Parsed 
    на Java .time.format.DateTimeFormatter.createError (DateTimeFormatter.java: 1919 ) 
    в java.time.format.DateTimeFormatter.parse (DateTimeFormatter.java: 1854 ) 
    на java.time.LocalDateTime.parse (LocalDateTime.java: 492 ) 
    на ком. ahut.common.utils.DateTest.testLocalDate (DateTest.java: 28 ) 
    в sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод) 
    при sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: 62) 
    В sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java: 43 ) 
    в java.lang.reflect.Method.invoke (Method.java: 483 ) 
    в org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod. Java: 50 ) 
    в org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java: 12 ) 
    в org.junit.runners.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java: 47 ) 
    в org.junit.internal .runners.statements.InvokeMethod.evaluate (InvokeMethod.java: 17 ) 
    в org.junit.runners.ParentRunner.runLeaf (ParentRunner.java: 325) 
    В org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java: 78 ) 
    в org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java: 57 ) 
    в org.junit.runners.ParentRunner $ 3.run (ParentRunner. Java: 290 ) 
    в org.junit.runners.ParentRunner $ 1.schedule (ParentRunner.java:71 ) 
    в org.junit.runners.ParentRunner.runChildren (ParentRunner.java: 288 ) 
    в org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:58 ) 
    в org.junit.runners.ParentRunner $ 2.evaluate (ParentRunner.java:268 )
    на org.junit.runners.ParentRunner.run (ParentRunner.java: 363 ) 
    на org.junit.runner.JUnitCore.run (JUnitCore.java: 137 ) 
    в com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs (JUnit4IdeaTestRunner.java: 68 ) 
    в com.intellij.rt.execution.junit.IdeaTestRunner $ Repeater.startRunnerWithArgs (IdeaTestRunner.java: 47 ) 
    в com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java: 242 ) 
    в com.intellij. rt.execution.junit.JUnitStarter.main (JUnitStarter.java: 70 ) 
Вызванный: java.time.DateTimeException: Невозможно получить LocalDateTime из TemporalAccessor: {}, ИСО решил2019-05-27 типа java.time.format.Parsed 
    на java.time.LocalDateTime.from (LocalDateTime.java: 461 ) 
    в java.time.LocalDateTime $$ Lambda $ 7/762152757 .queryFrom (Unknown Source) 
    в Java .time.format.Parsed.query (Parsed.java: 226 ) 
    в java.time.format.DateTimeFormatter.parse (DateTimeFormatter.java: 1850 ) 
    ... 24 более 
Вызванный: java.time.DateTimeException: Невозможно получить МестноеВремя от TemporalAccessor: {}, ИСО решил 2019-05-27 )типа java.time.format.Parsed 
    на java.time.LocalTime.from (LocalTime.java: 409 
    в java.time.LocalDateTime.from (LocalDateTime.java: 457 ) 
    ... 27 подробнее

Решение гггг-ММ-дд -> LocalDate -> LocalDateTime

 попробовать { 
            LocalDate LOCALDATE = LocalDate.parse ( "2019-05-27", DateTimeFormatter.ofPattern ( "гггг-ММ-дд" )); 
            LocalDateTime LocalDateTime = localDate.atStartOfDay (); 
            System.out.println (localDateTime.format (DateTimeFormatter.ofPattern ( "YYYY-MM-DD HH: мм: сс" ))); 
        } Задвижка (Исключение ех) { 
            ex.printStackTrace (); 
        }

экспорт

2019-05-27 00:00:00

LocalDate метод atStartOfDay Источник

    / ** 
     * Объединяет эту дату во время ночи , чтобы создать { @code LocalDateTime} 
     * в начале этой даты. 
     * <Р> 
     * Это возвращает { @code LocalDateTime} формируется с этой даты в момент 
     * полночь, 00:00, в начале этой даты. 
     * 
     * @Return местную дату и время , в полночь в начале этой даты, не равно нулю
      * / 
    общественного LocalDateTime atStartOfDay () {
         возвращение LocalDateTime.of ( это , LocalTime.MIDNIGHT); 
    }

Постоянная LocalTime

  / ** 
     * Минимальный поддерживаемый { @code LocalTime}, '00: 00' . 
     * Это время полночь в начале дня. 
     * / 
    Общественности  статической  окончательный LocalTime MIN;
    / ** 
     * Максимальное поддерживаемое { @code LocalTime}, '23: 59: +59,999999999' . 
     * Это время , незадолго до полуночи в конце дня. 
     * / 
    Общественности  статической  окончательный LocalTime MAX;
    / ** 
     * Время полночь в начале дня, '00: 00' . 
     * / 
    Общественности  статической  окончательный LocalTime MIDNIGHT;
    / **
     * Время полдень в середине дня, '12: 00' . 
     * / 
    Общественности  статической  окончательный LocalTime ПОЛДЕНЬ;
    / ** 
     * Константа для местного времени каждого часа. 
     * / 
    Частный  статический  окончательный LocalTime [] ЧАСЫ = новый МестноеВремя [24];

распространение

Получить текущую дату самых ранних и поздних времен

System.out.println (LocalDateTime.of (LocalDate.now (), LocalTime.MIN) .format (DateTimeFormatter.ofPattern ( "гггг-ММ-дд чч: мм: сс" ))); 
        System.out.println (LocalDateTime.of (LocalDate.now (), LocalTime.MAX) .format (DateTimeFormatter.ofPattern ( "гггг-ММ-дд чч: мм: сс")));
00:00:00 2019-05-27 
2019-05-27 23:59:59

Пакет аналитический метод

 / ** 
     * убывание: 
     * create_user: чэн 
     * create_date: 2019/5/27 19:28 
     * / 
    частный LocalDateTime parseToLocalDateTime (String ул, String шаблон) {
         если (StringUtils.isAnyBlank (улица, рисунок)) {
             возвращение  нуль ; 
        } 

        LocalDateTime LocalDateTime; 
        попробовать { 
            LocalDateTime = LocalDateTime.parse (ул, DateTimeFormatter.ofPattern (шаблон)); 
        } Задвижка (Исключение ех) { 
            ex.printStackTrace (); 
            LocalDate LOCALDATE = parseLocalDate (ул, шаблон);
            LocalDateTime = Objects.isNull (LOCALDATE)? нуль : localDate.atStartOfDay (); 
        } 
        Вернуть LocalDateTime; 
    } 

    / ** 
     * убывание: 
     * create_user: чэн 
     * create_date: 2019/5/27 19:30 
     * / 
    частный LocalDate parseLocalDate (String ул, String шаблон) {
         если (StringUtils.isAnyBlank (улица, рисунок)) {
             возвращение  нуль ; 
        } 

        LocalDate LOCALDATE = NULL ;
        попробуйте { 
            LocalDate =LocalDate.parse (ул, DateTimeFormatter.ofPattern (шаблон)); 
        } Задвижка (Исключение ех) { 
            ex.printStackTrace (); 
        } 
        Вернуть LOCALDATE; 
    }

вызов

  System.out.println ( "解析:" + parseToLocalDateTime ( "2019-05-27", "гггг-ММ-дд" ) 
                .format (DateTimeFormatter.ofPattern ( "YYYY-MM-DD HH: MM: SS")) );

результат

Разрешение: 2019-05-27 00:00:00

рекомендация

отwww.cnblogs.com/qingmuchuanqi48/p/12056200.html