1
0
mirror of https://github.com/mamoe/mirai.git synced 2025-04-25 04:50:26 +08:00

Fix currentTimeMillis

This commit is contained in:
Him188 2022-06-02 23:46:48 +01:00
parent 40c622dfad
commit d7be842853
No known key found for this signature in database
GPG Key ID: BA439CDDCF652375
2 changed files with 5 additions and 8 deletions
mirai-core-utils/src
nativeMain/kotlin
nativeTest/kotlin

View File

@ -14,10 +14,7 @@ package net.mamoe.mirai.utils
import kotlinx.atomicfu.locks.ReentrantLock
import kotlinx.atomicfu.locks.withLock
import kotlinx.cinterop.*
import platform.posix.localtime
import platform.posix.strftime
import platform.posix.time
import platform.posix.time_tVar
import platform.posix.*
/**
* 时间戳
@ -26,9 +23,9 @@ import platform.posix.time_tVar
public actual fun currentTimeMillis(): Long {
// Do not use getTimeMillis from stdlib, it doesn't support iosSimulatorArm64
memScoped {
val timeT = alloc<time_tVar>()
time(timeT.ptr)
return timeT.value.toLongUnsigned()
val spec = alloc<timespec>()
clock_gettime(CLOCK_REALTIME.convert(), spec.ptr)
return (spec.tv_sec * 1000 + spec.tv_nsec / 1e6).toLong()
}
}

View File

@ -17,7 +17,7 @@ internal class TimeUtilsTest {
@Test
fun `can get currentTimeMillis`() {
val time = currentTimeMillis()
assertTrue(time.toString()) { time > 1642549113 }
assertTrue(time.toString()) { time > 1654209523269 }
}
@Test