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

如何获取java.sql.Time表示的毫秒数?,java,sql,jdbc,mariadb,Java,Sql,Jdbc,Mariadb,我有一个java.sql.Time(00:04:24),我想从中获取毫秒(或秒)数: 但是结果是-3336000,而不是264000 单击以查看我的输出 为什么输出不是264000?如果您使用的是现代JDBC版本,则可以使用: LocalTime time = rs.getObject("DURATION", LocalTime.class); long millis = time.toSecondOfDay() * 1000 + time.get(MILLI_OF_SECOND); 关于毫秒

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

但是结果是
-3336000
,而不是
264000

单击以查看我的输出


为什么输出不是
264000

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

LocalTime time = rs.getObject("DURATION", LocalTime.class);
long millis = time.toSecondOfDay() * 1000 + time.get(MILLI_OF_SECOND);
关于毫秒的计算,不幸的是,没有方法可以得到一天中的毫秒,因为我是这样使用的

或根据以下建议:


数据库列类型是什么?如果服务器返回文本
“00:04:24”
作为列值,JDBC驱动程序可能会将其解析为当前时区,如果您的时区是CEST,即GMT+1,则
1970-01-01T00:04:24
(264000)变为
1969-12-31T23:04:24Z
(-3336000)试试这个:
java.time.LocalTime.parse(rs.getString(“DURATION”)).toSecondOfDay()
为什么不
long millis=time.toNanoOfDay()/1000000
LocalTime time = rs.getObject("DURATION", LocalTime.class);
long millis = time.toSecondOfDay() * 1000 + time.get(MILLI_OF_SECOND);
long millis = time.toNanoOfDay() / 1000000