rust - 如何将 SystemTime::now() 转换为整数类型?
问题描述
我正在尝试创建一个为实体分配唯一标识符的系统。我希望身份的一部分基于实体的创建时间,而另一部分基于 RNG——我希望整个 ID 是一个数字。
fn main() {
let id_p1 = SystemTime:now();
}
如何将 id_p1 转换为可用数字?
解决方案
简短的回答是,“你没有。” 该SystemTime
类型没有实现任何转换为任何整数类型的方法。这可能有充分的理由。例如,时间甚至没有理由用整数类型表示。如果当前时间不是自使用任何参考以来的整数秒怎么办?
如果你真的需要一个整数类型,你可以计算自一些定义的引用以来经过的时间,比如 Unix 纪元。这将产生 a Duration
,它确实实现了到数字类型的转换。
另一个选择可能是这次散列,可能与您的 RNG 中的盐一起。SystemTime
确实如此,impl Hash
因此您可以输入时间和随机数,并生成一个u64
作为您的 ID。
推荐阅读
- ios - SwiftUI NavigationView 在子视图中显示 ActionSheet、Popover 或 Sheet 会关闭子视图
- java - 红绿灯计划。爪哇。循环
- php - 在 S3 存储桶中上传图像:“s3”服务需要“区域”配置值
- python - 按 id 上的排名旋转 pandas 数据帧
- jenkins - 如何在 Prometheus 中获取 Jenkins 版本指标信息?
- r - R:按变量分组然后按另一个的出现计数/过滤
- chatbot - 将 bot 的卡片分享给 ms 团队中的另一个人
- python - 聚类标签绘图
- java - 在 selenium 中发生错误“java: cannot access java.util.function.Function class file for java.util.function.Function not found”
- c# - 使用可观察集合的脚本中的 self == null