我想以单调的方式尽可能精确地获取自纪元以来的当前时间(以毫秒为单位)。
有人有经验吗?我尝试了以下两种方法,但是第一种是不准确的,不是单调的,而且我不确定当时间从一毫秒跳到另一毫秒时,第二种不会有怪异的行为。
(我正在与Kotlin一起工作,因此可以使用任何一种Java解决方案)
fun nowInMicrosSinceEpoch() : Long {
val now = Instant.now()
return now.toEpochMilli() * 1000L + (now.getNano().toLong() / 1000L)
}
fun nowInMicrosSinceEpoch() : Long {
return (System.currentTimeMillis() * 1000L) + (System.nanoTime() % 1_000_000L / 1000L)
}