Spring Boot 将yyyy-MM-dd格式的文本字符串直接转换为LocalDateTime出现的问题

 更新时间:2020年09月07日 10:52:24   作者:是摩卡不是抹茶呀  
这篇文章主要介绍了Spring Boot 将yyyy-MM-dd格式的文本字符串直接转换为LocalDateTime出现的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Spring Boot 将yyyy-MM-dd格式的文本字符串直接转换为LocalDateTime出现的问题

问题复现

Exception in thread "main" java.time.format.DateTimeParseException: Text '2020-03-12' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2020-03-12 of type java.time.format.Parsed
 at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
 at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)
 at java.time.LocalDateTime.parse(LocalDateTime.java:492)
 at demo.LocalDateTimeUtils.parseString(LocalDateTimeUtils.java:22)
 at demo.DateTimeDemo.main(DateTimeDemo.java:12)
Caused by: java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2020-03-12 of type java.time.format.Parsed
 at java.time.LocalDateTime.from(LocalDateTime.java:461)
 at java.time.format.Parsed.query(Parsed.java:226)
 at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
 ... 3 more
Caused by: java.time.DateTimeException: Unable to obtain LocalTime from TemporalAccessor: {},ISO resolved to 2020-03-12 of type java.time.format.Parsed
 at java.time.LocalTime.from(LocalTime.java:409)
 at java.time.LocalDateTime.from(LocalDateTime.java:457)
 ... 5 more
 

问题解决

解决方案:先将文本字符串日期转化为LocalDate类型,再将LocalDate转化为LocalDateTime

LocalDateTimeUtils.parseStringToLocalDateTime(
    couponForm.getStartTime(), DateTimeFormatPatternConstants.YYYY_MM_DD)
/**
 * 解析字符串为日期
 * <p>
 * 说明:
 * 1. 该方法主要解决yyyy-MM-dd格式文本字符串无法直接转换为LocalDateTime的问题
 *
 * @param source  需要解析的日期字符串
 * @param formatPattern 日期格式化模式
 * @return 格式化后的日期
 */
public static LocalDateTime parseStringToLocalDateTime(String source, String formatPattern) {
 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(formatPattern);
 LocalDate localDate = LocalDate.parse(source, dateTimeFormatter);
 return localDate.atStartOfDay();
}

java.time.LocalDate.atStartOfDay()方法将此日期与午夜时间组合在一起,以便在此日期开始时创建LocalDateTime

可参考文档

到此这篇关于Spring Boot 将yyyy-MM-dd格式的文本字符串直接转换为LocalDateTime出现的问题的文章就介绍到这了,更多相关SpringBoot yyyy-MM-dd转换为LocalDateTime内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文了解为什么Java中只有值传递

    一文了解为什么Java中只有值传递

    Java 传参是值传递还是引用传递?这个问题很基础,但是许多人都有点懵。本文就来通过一些示例带大家详细了解一下,需要的可以参考一下
    2022-07-07
  • Java实战之用hutool-db实现多数据源配置

    Java实战之用hutool-db实现多数据源配置

    在微服务搭建中经常会使用到多数据库情形这个时候,下面这篇文章主要给大家介绍了关于Java实战之用hutool-db实现多数据源配置的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • springboot neo4j的配置代码

    springboot neo4j的配置代码

    小编最近的工作中遇到了一些知识图谱的工作,自然就用到了图数据库,这一NoSQL 数据库可以很好的展示节点之间的关联关系,对于一些图谱的关系操作是很好的选择,下面来介绍下 Springboot 配置Neo4J的问题
    2021-12-12
  • Java结合redistemplate使用分布式锁案例讲解

    Java结合redistemplate使用分布式锁案例讲解

    在Java中使用RedisTemplate结合Redis来实现分布式锁是一种常见的做法,特别适用于微服务架构或多实例部署的应用程序中,以确保数据的一致性和避免竞态条件,下面给大家分享使用Spring Boot和RedisTemplate实现分布式锁的案例,感兴趣的朋友一起看看吧
    2024-08-08
  • Java restTemplate发送get请求query参数传递问题解决

    Java restTemplate发送get请求query参数传递问题解决

    这篇文章主要为大家介绍了Java restTemplate发送get请求query参数传递问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • JAVA中的final关键字用法实例详解

    JAVA中的final关键字用法实例详解

    这篇文章主要介绍了JAVA中的final关键字用法,结合实例形式较为详细的分析了Java中的final关键字用于修饰数据,方法及类的具体使用技巧,需要的朋友可以参考下
    2015-12-12
  • java正则表达式如何获取xml文件中指定节点的值

    java正则表达式如何获取xml文件中指定节点的值

    这篇文章主要介绍了java正则表达式如何获取xml文件中指定节点的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java实现Excel百万级数据导入功能的示例代码

    Java实现Excel百万级数据导入功能的示例代码

    这篇文章主要为大家详细介绍了Java如何实现Excel百万级数据导入功能,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考下
    2024-04-04
  • 关于Java中HashCode方法的深入理解

    关于Java中HashCode方法的深入理解

    这篇文章主要给大家介绍了关于Java中HashCode方法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Java中的强制类型转换 大数转小数

    Java中的强制类型转换 大数转小数

    这里主要讨论一下大数转小数,比如int类型转short类型。小数转大数,如short 转 int不做讨论,需要的朋友可以参考下
    2020-02-02

最新评论