Java DateTimeParseException: Text ‘xxx‘ could not be parsed at index 0问题解决

问题描述:

java.time.format.DateTimeParseException: Text '20220310' could not be parsed at index 0

问题分析:

1、使用LocalDate.parse()方法时,要转换的日期字符串格式和指定的日期格式对不上。

LocalDate.parse("20220310", DateTimeFormatter.ofPattern("yyyy-MM-dd"));

解决办法:要转换的日期字符串格式和指定的日期格式一致即可。

LocalDate.parse("2022-03-10", DateTimeFormatter.ofPattern("yyyy-MM-dd"));

旭东怪的个人空间_哔哩哔哩_Bilibili旭东怪,人生低谷不可怕,可怕的是坚持不到人生转折点的那一天;旭东怪的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/484264966?spm_id_from=333.1007.0.0

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
这个错误通常表示输入的日期时间字符串格式与指定的格式不匹配。在这种情况下,输入的日期时间字符串中缺少了时区信息,因为它没有以“Z”或“+/-hh:mm”格式表示。因此,Java无法将其解析为日期时间对象。 要解决这个问题,您需要确保输入的日期时间字符串包含时区信息。如果您不能提供时区信息,可以将其默认设置为UTC时区,并将“Z”附加到日期时间字符串的末尾。例如: ```java String dateTimeStr = "2011-12-03T10:15:30"; Instant instant = LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ISO_LOCAL_DATE_TIME) .atZone(ZoneId.of("UTC")) .toInstant(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDateTimeStr = formatter.format(instant.atZone(ZoneId.systemDefault()).toLocalDateTime()); System.out.println(formattedDateTimeStr); ``` 在上面的代码中,我们首先使用DateTimeFormatter.ISO_LOCAL_DATE_TIME格式解析输入的日期时间字符串,然后将其转换为UTC时区的Instant对象。接下来,我们使用DateTimeFormatter.ofPattern()方法创建一个指定格式的时间格式化器。最后,我们使用Instant.atZone()方法将Instant对象转换为ZoneDateTime对象,并将其转换为本地时区的LocalDateTime对象。最后,我们使用DateTimeFormatter.format()方法将LocalDateTime对象格式化为指定格式的字符串。 这样就可以避免“Text '2011-12-03T10:15:30' could not be parsed at index 19”错误了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值