如何将具有秒(微/毫/纳)小数部分的 java.time.LocalTime
转换为 java.sql.Time
?
我知道自 spring-data-jpa
的 2.x 版本以来,这些类型 (JSR310) 具有映射到遗留 java.sql.Date
和java.sql.Timestamp
但我对 LocalTime
的第二部分的分数有很多问题。
最佳答案
How to map
java.time.LocalTime
to ajava.sql.Time
这是一种不使用 String
作为中间值的方法。
java.time.LocalTime localTime = java.time.LocalTime.now();
long epochMilli = localTime.atDate(java.time.LocalDate.EPOCH)
.atZone(java.time.ZoneId.systemDefault())
.toInstant()
.toEpochMilli();
java.sql.Time sqlTime = new java.sql.Time(epochMilli);
System.out.println(localTime.format(DateTimeFormatter.ofPattern("HH:mm:ss.SSS")));
System.out.println(new SimpleDateFormat("HH:mm:ss.SSS").format(sqlTime));
输出
22:28:22.104
22:28:22.104
关于java - 如何将以毫秒为单位的 java.time.LocalTime 映射为以毫秒为单位的 java.sql.Time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51182366/