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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式

    本文实例讲述了正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <head><title>正则表达式</title></head> <body> <a href="./">返回列表</a> <form action="<? echo $PHP_SELF; ?&

  • js时间戳转yyyy-MM-dd HH-mm-ss工具类详解

    在web开发中,我们经常需要用js将时间戳转yyyy-MM-dd HH-mm-ss类似的格式,这样才适合我们的观感,那么我们该如何在js中将时间戳转换成这种格式呢?其实很简单,我们开发一个时间戳工具类,如下: 第一种:最简单的是一个js时间格式的转换函数方法 function formatDateTime(inputTime) { var date = new Date(inputTime); var y = date.getFullYear(); var m = date.getMonth()

  • 匹配yyyy-mm-dd日期格式的的正则表达式

    其实我也很头疼正则表达式,百度了一些资料,总结一下,这里留个备份吧. 要考虑的问题:合法的日期是多少:每个月的天数不一样:闰年的问题.... 1.合法的日期:MSDN上规定--在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间 查看http://msdn.microsoft.com/zh-cn/library/system.datetime(VS.80).aspx 2.闰年的概念:百

  • js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)

    如下所示: function formatDate(date,fmt) { if(/(y+)/.test(fmt)){ fmt = fmt.replace(RegExp.$1,(date.getFullYear()+'').substr(4-RegExp.$1.length)); } let o = { 'M+':date.getMonth() + 1, 'd+':date.getDate(), 'h+':date.getHours(), 'm+':date.getMinutes(), 's+'

  • JS验证日期的格式YYYY-mm-dd 具体实现

    复制代码 代码如下: function checkInputDate(obj){   var   strDate=obj.value;    var  re =/^(\d{4})-(\d{2})-(\d{2})$/;    if(re.test(strDate))//判断日期格式符合YYYY-MM-DD标准    {     var   dateElement=new   Date(RegExp.$1,parseInt(RegExp.$2,10)-1,RegExp.$3);      if(!(

  • 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-

  • input框中自动展示当前日期yyyy/mm/dd的实现方法

    直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>input框中自动展示当前日期</title> </head> <body> <input type="text" id="input"> <script>

  • 如何在Spring Boot应用中优雅的使用Date和LocalDateTime的教程详解

    Java8已经发布很多年了,但是很多人在开发时仍然坚持使用着Date和SimpleDateFormat进行时间操作.SimpleDateFormat不是线程安全的,而Date处理时间很麻烦,所以Java8提供了LocalDateTime.LocalDate和LocalTime等全新的时间操作API.无论是Date还是LocalDate,在开发Spring Boot应用时经常需要在每个实体类的日期字段上加上@DateTimeFormat注解来接收前端传值与日期字段绑定,加上@JsonFormat注

  • Spring Boot 配置文件详解(小结)

    Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件.他们的作用都是修改Spring Boot自动配置的默认值.相对于properties文件而言,yml文件更年轻,也有很多的坑.可谓成也萧何败萧何,yml通过空格来确定层级关系,是配置文件结构跟清晰,但也会因为微不足道的空格而破坏了层级关系.本章重点介绍yml的语法和从配置文件中取值.还在等什么,赶快来学习吧! 技术:yaml.properties语法,ConfigurationProperties和Val

  • Spring boot如何配置请求的入参和出参json数据格式

    这篇文章主要介绍了spring boot如何配置请求的入参和出参json数据格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 请求入参数据格式配置,以日期格式为例: 编写日期编辑器类: import first.zxz.tools.DateUtil; import java.beans.PropertyEditorSupport; /** * 日期编辑器 * * @author zhangxz * @date 2019-11-12 20:01

  • spring boot使用logback日志级别打印控制操作

    因为公司业务需要,需要把性能日志和业务日志分开打印,用elk收集处理,所以需要对不同的业务的日志,打印到不同文件. 使用的是spring boot自带的logback. 首先在yml文件配置logback.xml文件,默认会从resources下找logback.xml文件,找不到会从yml文件中找logging.config下的指定文件. logging: level: DEBUG config: classpath:logback.xml logback.xml是logback的配置文件,可

  • Spring Boot整合web层实现过程详解

    Spring Boot中对Spring MVC的文件上传是一脉相传的,我们双击shift去搜CommonsMultipartResolver这个类,它是文件上传的一个实现类.我们先看一下源码: 我们可以看到它是MultipartResolver的实现类,我们再Ctrl+H,就可以看到右侧MultipartResolver的两个实现类.第一个实现类在servlet3.0之后,什么都不用加,就可以直接使用.第二个实现类的兼容性要好一些,早期的servlet也可以使用,但需要自己额外的加依赖.那么在S

  • Spring Boot 整合Redis 实现优惠卷秒杀 一人一单功能

    目录 一.什么是全局唯一ID 全局唯一ID Redis实现全局唯一ID 二.环境准备 三.实现秒杀下单 四.库存超卖问题 问题分析 乐观锁解决库存超卖 Jmeter 测试 五.优惠卷秒杀 实现一人一单 小结 一.什么是全局唯一ID 全局唯一ID 在分布式系统中,经常需要使用全局唯一ID查找对应的数据.产生这种ID需要保证系统全局唯一,而且要高性能以及占用相对较少的空间. 全局唯一ID在数据库中一般会被设成主键,这样为了保证数据插入时索引的快速建立,还需要保持一个有序的趋势. 这样全局唯一ID就需

  • 通过Spring Boot + Mybatis + Redis快速搭建现代化Web项目

    背景 SpringBoot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一.Mybatis是一个十分轻量好用的ORM框架.Redis是当今十分主流的分布式key-value型数据库,在web开发中,我们常用它来缓存数据库的查询结果. 本篇博客将介绍如何使用SpringBoot快速搭建一个Web应用,并且采用Mybatis作为我们的ORM框架.为了提升性能,我们将Redis作为Mybatis的二级缓存.为了测试我们的代码,我们编写了单元测试,并且用H2内存数据库

  • 深入Spring Boot实现对Fat Jar jsp的支持

    spring boot 对于jsp支持的限制 对于jsp的支持,Spring Boot官方只支持了war的打包方式,不支持fat jar.参考官方文档: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-jsp-limitations 这里spring boot官方说是tomcat的问题,实际上是sp

随机推荐