java - 如何获取 java.sql.Time 表示的毫秒数?

标签 java sql jdbc mariadb

我有一个 java.sql.Time (00:04:24),我想从中获取毫秒(或秒)数:

ResultSet rs = ...;
java.sql.Time time = rs.getTime("DURATION");
long millis = time.getTime();

但结果是 -3336000 而不是 264000

点击here查看我的输出。

为什么输出不是264000

最佳答案

如果您使用的是现代 JDBC 版本,则可以使用:

LocalTime time = rs.getObject("DURATION", LocalTime.class);
long millis = time.toSecondOfDay() * 1000 + time.get(MILLI_OF_SECOND);

关于毫秒的计算,不幸的是,没有方法可以获取当天的毫秒数,因为我就是这样使用的。

或者按照@Andreas的建议:

long millis = time.toNanoOfDay() / 1000000

关于java - 如何获取 java.sql.Time 表示的毫秒数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60685351/

相关文章:

java - 帮助在集成测试中使用 Guice 的库

java - OrientDb如何在使用对象数据库时不更新链接

php - 如果 mysql 结果 = 1 那么。不管用?

java - org.springframework.jdbc.support.SQLErrorCodesFactory.getErrorCodes 阻塞线程

java - 为 Jboss EAP 6.3 安装 JDBC

java - JDBC PL/SQL 上一行 (LAG) 仅返回当前值

java - 我应该如何做图像动画?

java - 如何在java中从AWS-SQS读取反序列化对象?

sql - 可空与非空varchar数据类型-查询哪种更快?

mysql - 如何在MySql中按日期顺序显示最近添加的数据?