java.sql.Timestamp 到微秒(长整型,精确到微秒)

标签 java sql scala jdbc timestamp

我已经查看了 here 的问题及其解决方案,但看起来解决方案是 2013 年的,我正在寻找比这更好的解决方案。

如何将 DateTime(TimeStamp) 从 Oracle 转换为 Long,精确到微秒?

对于。例如: 来自 Oracle 的时间戳为:“2018-10-31 14:30:12.123456”。我需要它将它转换为长整型:1541010612123456。

I/P: "2018-10-31 14:30:12.123456" // String
O/P: 1541010612123456 // Long

我试过了

java.sql.Timestamp.valueOf("2018-10-31 14:30:12.123456").getTime

但这给了我精确到毫秒的精度:1541010612123

为了解决这个问题,我尝试了类似的方法,它有效,但不确定它是否是一个好的解决方案。

val timeStamp = java.sql.Timestamp.valueOf("2018-10-31 14:30:12.123456").toInstant
val requiredLong = (timeStamp.getEpochSecond.toString + (timeStamp.getNano/1000).toString).toLong

任何更好的建议或解决方案。

最佳答案

您可以使用 TimeUnit 进行此转换:

Instant instant = java.sql.Timestamp.valueOf("2018-10-31 14:30:12.123456").toInstant();  
long micros = TimeUnit.SECONDS.toMicros(instant.getEpochSecond()) + TimeUnit.NANOSECONDS.toMicros(instant.getNano());

关于java.sql.Timestamp 到微秒(长整型,精确到微秒),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55285356/

相关文章:

SQL - 将表传递给 Select 中的 UDF

java - 在 OS X 上 Play Framework 运行时错误

java - 抛出运行时异常

sql - 如何在sql中正确使用inner join

java - 使用 Epson JavaPOS ADK 1.11.18.0 时遇到问题

mysql - 从选择中查询 SQL 更新

scala - Scala 的 "specs"BDD 框架如何工作?

java - 你如何遍历scala中的每个状态?

java - 尝试将 MySQL 数据库连接到 android 时出现 NullPointerException 错误

java - Intellij Idea NoClassDefFoundError : com/intellij/util/messages/Topic