гггг-ММ-дд -> 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