将字符串转换成时间、日期时候会出现的错误

错误代码:

    @Test
    public void test1(){
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        TemporalAccessor temporalAccessor = dateTimeFormatter.parse("2023-07-04 06:09:19");
        LocalDateTime localDateTime1 = LocalDateTime.from(temporalAccessor);
        System.out.println(localDateTime1);
    }

出现的错误:

java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: {NanoOfSecond=0, MicroOfSecond=0, SecondOfMinute=19, MilliOfSecond=0, HourOfAmPm=6, MinuteOfHour=9},ISO resolved to 2023-07-04 of type java.time.format.Parsed

错误原因:

因为时间格式中的小时 hh 采用12小时,反解析时需要区分上午还是下午,所以改成 "yyyy-MM-dd hh:mm:ss a"或者采用24小时制“yyyy-MM-dd HH:mm:ss

其中‘a’表示上午或下午的标记

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐