如何在Kotlin中将日期字符串转换为时间戳?

ele*_*ser 11 timestamp date unix-timestamp kotlin

我想将日期字符串从日期字符串转换为unix时间戳,例如 14-02-2018

有人可以帮忙吗?

Arp*_*kar 14

使用它将日期字符串转换为UNIX时间戳

val date = SimpleDateFormat("dd-MM-yyyy").parse("14-02-2018")
println(date.time)
Run Code Online (Sandbox Code Playgroud)

  • 只应在JDK <= 1.7时使用,还要注意格式化程序不是线程安全的 (3认同)

s1m*_*nw1 8

从JDK 8开始,您可以:

val l = LocalDate.parse("14-02-2018", DateTimeFormatter.ofPattern("dd-MM-yyyy"))

val unix = l.atStartOfDay(ZoneId.systemDefault()).toInstant().epochSecond
Run Code Online (Sandbox Code Playgroud)

请注意,该示例使用系统的默认时区.

  • 注意:在android中这需要api 26 (8认同)
  • 注意:这仅适用于 SDK 26 及更高版本,对于较低版本的 SDK,请遵循以下步骤:https://developer.android.com/studio/write/java8-support#library-desugaring (3认同)
  • 小于26的api不能正常工作! (2认同)

Mih*_*eel 5

为了向后兼容,请使用 ThreeTenABP 库,但 Android 本身更好的解决方案将启用支持https://developer.android.com/studio/write/java8-support#library-desugaring

启用后,您现在可以将字符串日期解析为任何有效的格式模式

LocalDate.parse(date, DateTimeFormatter.ISO_LOCAL_DATE_TIME).format(
        DateTimeFormatter.ofPattern("MMM. dd, yyyy")
Run Code Online (Sandbox Code Playgroud)