如何使用 kotlin 将带有日期和时间戳的 id 转换为 ObjectId?

问题描述 投票:0回答:1
"id": {
  "date": "Wed Aug 16 18:51:43 PST 2023",
  "timestamp": 1692183103
}

我需要将此 id 转换为 ObjectId,“64dcaa3fcac7f22c65bf21e8”。

这是我的代码:

val inputDate = id.getString("date")
val timestamp = id.getLong("timestamp")

val dateFormat = SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH)
val date = dateFormat.parse(inputDate)
val time = date.time / 1000L
val timeHex = timestamp.toString(16).padStart(8, '0')

return timeHex.substring(8) + timeHex.substring(0, 2) + timeHex.substring(2, 8)

但是它只返回“64dcaa3f”

我该怎么办?

java mongodb kotlin mongodb-query objectid
1个回答
0
投票

我认为这段代码适合你。

val inputDate = id.getString("date")
val timestamp = id.getLong("timestamp")

val dateFormat = SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH)
val date = dateFormat.parse(inputDate)
val time = date.time / 1000L
val timeHex = timestamp.toString(16).padStart(8, '0')

val objectId = timeHex.substring(0, 4) + timeHex.substring(8) + timeHex.substring(2, 8)

return objectId

此代码得到以下输出:64dcaa3fcac7f22c65bf21e8

© www.soinside.com 2019 - 2024. All rights reserved.