YYYY-MM-DD日付書式文字列について、解決さの問題に遭遇するのLocalDateTime

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秒

おすすめ

転載: www.cnblogs.com/qingmuchuanqi48/p/12056200.html