You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LocalDate格式化报错UnsupportedTemporalTypeException问题求助

解决LocalDate格式化时的UnsupportedTemporalTypeException错误

嘿,作为刚学3-4个月的Java新手,踩这个日期格式化的坑太正常了!我来给你捋清楚问题出在哪,怎么解决:

错误原因

你写的格式字符串"dd.mm.yyyy"里,mm代表的是分钟(MinuteOfHour),但LocalDate这个类只包含年、月、日的信息,根本没有时分秒相关的字段,所以调用format方法时,Java找不到对应的MinuteOfHour字段,就抛出了UnsupportedTemporalTypeException。

修正方案

把格式字符串里的mm改成MM就好!因为DateTimeFormatter里的MM才是代表月份的占位符。另外要注意:LocalDate.format()方法是返回一个格式化后的新字符串,不会修改原LocalDate对象,所以你得把格式化结果存到变量里,不然等于白操作了。

修正后的代码应该是这样:

LocalDate localDate = purchased_at.getValue();
// 用MM表示月份,dd是日,yyyy是4位年份
String formattedDate = localDate.format(DateTimeFormatter.ofPattern("dd.MM.yyyy"));
// 接下来把formattedDate存入SQL数据库即可

额外小提示

如果你的SQL数据库字段是DATE类型(比如MySQL的DATE),其实不用手动格式化字符串!现在大部分JDBC驱动(比如MySQL Connector/J 8.0及以上版本)都直接支持将LocalDate对象存入DATE字段,直接用PreparedStatement的setObject方法就行,这样更规范,还能避免格式不匹配的问题:

// 假设你有一个PreparedStatement对象ps
ps.setObject(1, localDate); // 直接传入LocalDate对象

内容的提问来源于stack exchange,提问作者Vins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:18:49