YYYY-MM-DD - >のLocalDateTime
直接日付文字列YYYY-MM-DD形式の分析にはLocalDateTimeをにスローされます
してみてください{ LocalDateTimeのLocalDateTime = LocalDateTime.parse( "2019年5月27日"、DateTimeFormatter.ofPattern( "YYYY-MM-DD" ))。 System.out.println(のLocalDateTime)。 } キャッチ(例外例){ ex.printStackTrace(); }
次のように例外をスローします
java.time.format.DateTimeParseException:テキスト「2019年5月27日」は解析できませんでした:TemporalAccessorからのLocalDateTimeを取得できません:{}、ISOは、2019年5月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 ) でcom.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:によって引き起こさTemporalAccessorからのLocalDateTimeを取得できません:{}、ISOはに解決 2019年5月27日タイプのjava.time.format.Parsed java.time.LocalDateTime.fromで(LocalDateTime.java: 461 ) java.time.LocalDateTime $$ラムダで$ 762152757分の7 .queryFrom(不明なソース) でjava.time.format.Parsed.query(Parsed.java: 226 ) でjava.time.format.DateTimeFormatter.parse(DateTimeFormatter.java: 1850 ) ... 24 もっと java.time.DateTimeException:によって引き起こさTemporalAccessorからにLocalTimeを取得できません:{}、ISOはに解決 2019年5月27日タイプのjava.time.format.Parsed java.time.LocalTime.fromで(LocalTime.java: 409 ) java.time.LocalDateTime.fromで(LocalDateTime.java: 457 ) ... 27もっと
ソリューションYYYY-MM-DD - > LOCALDATE - >のLocalDateTime
してみてください{ LOCALDATE LOCALDATE = LocalDate.parse( "2019年5月27日"、DateTimeFormatter.ofPattern( "YYYY-MM-DD" ))。 localdatetiにLocaldateti = localdate.atstartofday()。 System.out.println(localDateTime.format(DateTimeFormatter.ofPattern( "YYYY-MM-DD HH:MM:SS" ))); } キャッチ(例外例){ ex.printStackTrace(); }
輸出
2019年5月27日夜12時〇〇分00秒
LOCALDATE atStartOfDay方法ソース
/ ** * {作成するために、深夜の時間で、この日付を結合@codeのLocalDateTimeをします} *この日の開始時。 * <P> *この戻り{ @codeの時に、この日付から形成LocalDateTimeを} *深夜00:00、この日の開始時。 * * @return この日付の開始時真夜中のローカル日時を、NOT NULL * / 公共の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のNOON。 / ** *各時間のローカル時間のための定数。 * / プライベート 静的 最終的にLocalTime [] HOURS = 新にLocalTime [24]。
スプレッド
最初と最後の時間の現在の日付を取得します。
System.out.println(LocalDateTime.of(LocalDate.now()、LocalTime.MIN).format(DateTimeFormatter.ofPattern( "YYYY-MM-DD HH:MM:SS" )));
System.out.println(LocalDateTime.of(LocalDate.now()、LocalTime.MAX).format(DateTimeFormatter.ofPattern( "YYYY-MM-DD HH:MM:SS")));
2019年5月27日夜12時〇〇分00秒 2019年5月27日夜11時59分59秒
パッケージの分析方法
/ ** *内容: * CREATE_USER:チェン * CREATE_DATE:2019年5月27日午後7時28 * / プライベートのLocalDateTime parseToLocalDateTime(文字列str、文字列パターン){ 場合(StringUtils.isAnyBlank(STR、パターン)){ 戻り ヌル。 } localdatetiにlocaldatetiへ。 してみてください{ LocalDateTime = LocalDateTime.parse(STR、DateTimeFormatter.ofPattern(パターン))。 } キャッチ(例外例){ ex.printStackTrace(); LOCALDATE LOCALDATE = parselocaldat(STR、パターン)。 LocalDateTime = Objects.isNull(LOCALDATE)?ヌル:localDate.atStartOfDay(); } 返すのLocalDateTimeを。 } / ** *内容: * CREATE_USER:チェン * CREATE_DATE:2019年5月27日夜7時30分 * / プライベートLOCALDATE parseLocalDate(文字列str、文字列パターン){ 場合(StringUtils.isAnyBlank(STR、パターン)){ 戻り ヌル。 } LOCALDATE LOCALDATE = nullを。 してみてください{ LOCALDATE = LocalDate.parse(STR、DateTimeFormatter.ofPattern(パターン))。 } キャッチ(例外例){ ex.printStackTrace(); } 返すLOCALDATEを。 }
コール
System.out.println( "解析:" + parseToLocalDateTime( "2019年5月27日"、 "YYYY-MM-DD" )
.format(DateTimeFormatter.ofPattern( "YYYY-MM-DD HH:MM:SS")));
結果
解像度:2019年5月27日夜12時00分00秒