java - 如何将以毫秒为单位的 java.time.LocalTime 映射为以毫秒为单位的 java.sql.Time

标签 java spring spring-boot spring-data-jpa java-time

如何将具有秒(微/毫/纳)小数部分的 java.time.LocalTime 转换为 java.sql.Time

我知道自 spring-data-jpa 的 2.x 版本以来,这些类型 (JSR310) 具有映射到遗留 java.sql.Datejava.sql.Timestamp 但我对 LocalTime 的第二部分的分数有很多问题。

最佳答案

How to map java.time.LocalTime to a java.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/

相关文章:

将 Android 设备与 Android Studio 连接时出现 java.lang.IllegalStateException

java - 和Engine Box2D Body GetContactList

java - Spring 自定义转换器 - 转为 Bean 还是不转为 Bean

java - 根据依赖类为公共(public)依赖项提供不同的构造函数参数

java - Spring + Hibernate - 持久/提交数据不起作用

java - 构建maven项目时不应该包含web.xml吗?网 bean

java - 是否可以将 Eclipse 配置为在没有静态导入的情况下使用 "favorites"?

java - Spring 数据 : How to set GenerationType strategy while working with @Embeddable and @Embedded

java - 属性 'spring.cloud.config.server.git.privateKey' 不是有效的私钥

java - 在集成测试中覆盖 spring @Configuration