赞
踩
MongoDB 的 _id
值按照 ObjectId 的生成规则来生成。ObjectId
是一个12字节(16进制表示为 24 位字符串)的标识符,它的构成包括以下几个部分:
通过_id
获取到创建时间的步骤为:
以下是一条记录,_id是数据库生成的,createTime是后天的当前时间:
_id | createTime |
---|---|
66160a7c519bf4573a3bd5a6 | 2024-04-08 11:41:48 |
以下为Java代码:
public static void main(String[] args) {
// 1. 目标_id字段值
String _id = "66160a7c519bf4573a3bd5a6";
// 2. 提取前8位十六进制字符
String timestampStr = _id.substring(0, 8);
// 3. 转换为10进制数
long timestampInSeconds = Long.parseLong(timestampStr, 16);
// 4. 格式化成时间
// 将时间戳转换为毫秒
long timestampInMillis = timestampInSeconds * 1000;
// 使用时间戳创建一个Instant对象
Instant instant = Instant.ofEpochMilli(timestampInMillis);
// 创建DateTimeFormatter对象并设置格式模式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 将Instant对象转换为LocalDateTime,并在指定时区下格式化为字符串
String formattedDateTime = instant.atZone(ZoneId.systemDefault()).format(formatter);
// 输出结果
System.out.println("Formatted date and time: " + formattedDateTime);
}
执行结果:
Formatted date and time: 2024-04-10 11:41:48
_id
包含有时间戳还是有用的。具体什么作用大家可以展开想象。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。