首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Kotlin标准库(多平台)上获取当前的unixtime

问如何在Kotlin标准库(多平台)上获取当前的unixtime
EN

Stack Overflow用户
提问于 2020-10-08 03:37:24
回答 2查看 808关注 0票数 7

我有一个Kotlin多平台项目,我想在共享代码中获得当前的unixtime。

在Kotlin标准库中如何做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2020-10-08 03:37:24

可以使用实验性的Kotlin日期时间库,当前版本为0.1.0

val nowUnixtime = Clock.System.now().epochSeconds

更多信息请点击此处:https://github.com/Kotlin/kotlinx-datetime

票数 7
EN

Stack Overflow用户

发布于 2020-10-08 10:27:21

如果您已经在使用kotlinx-datetime,或者计划对其他日期/时间特性使用更多,那么使用kotlinx-datetime是一个很好的选择。但是,如果您的应用程序/libray唯一需要的是epochSeconds,我认为添加对kotlinx-datetime的依赖有点过分了。

相反,声明自己的epochMillis()函数并为每个平台实现它是非常简单的:

代码语言:javascript
复制
// for common
expect fun epochMillis(): Long

// for jvm
actual fun epochMillis(): Long = System.currentTimeMillis()

// for js
actual fun epochMillis(): Long = Date.now().toLong()

// for native it depends on target platform
// but posix can be used on any posix-compatible native targets
actual fun epochMillis(): Long = memScoped {
    val timeVal = alloc<timeval>()
    gettimeofday(timeVal.ptr, null)
    (timeVal.tv_sec * 1000) + (timeVal.tv_usec / 1000)
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64251153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档