【发布时间】:2022-01-28 01:45:39
【问题描述】:
我目前收到IllegalArgumentException 这些代码行:
Time timeIn = Time.valueOf( res.getCheckInTime().toString());
Time timeOut = Time.valueOf( res.getCheckOutTime().toString());
两个参数都是LocalTime存储本地时间如11:05:
res.getCheckInTime()res.getCheckOutTime()
谁能帮帮我?
【问题讨论】:
-
你能分享一下 res.getCheckInTime().toString() 打印出来的内容吗?
-
11:05 字符串格式
-
以及已经提到的 - 你可能正在点击这个 else sn-p - github.com/openjdk/jdk/blob/master/src/java.sql/share/classes/…
-
从 JavaDoc 中,实例本身存储纳秒精度,但
LocalTime.toString()可能在几秒内省略零(“使用的格式将是输出完整时间值的最短格式省略的部分暗示为零”)。所以它可能无法满足Time.valueOf的要求。 -
顺便说一下,
java.sql.Time是与最早的 Java 版本捆绑在一起的存在严重缺陷的日期时间类的一部分。这些类,包括Time,在几年前就被 JSR 310 中定义的现代 java.time 类所取代。如果您的方法已经在使用java.time.LocalTime,您通常应该没有理由转换为Time.
标签: java java-time localtime sql-timestamp