从 UUID 版本 1 获取 UNIX 时间戳

2024-01-06

在我们的 Java 应用程序中,我们尝试从 UUID 获取 UNIX 时间版本1 https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)。但它没有给出正确的日期时间值。

long time = uuid.timestamp();
time = time / 10000L;   // Dividing by 10^4 as it's in 100 nanoseconds precision 
Calendar c = Calendar.getInstance();
c.setTimeInMillis(time);
c.getTime();

有人可以帮忙吗?


从文档中timestamp():

生成的时间戳自 UTC 时间 1582 年 10 月 15 日午夜起以 100 纳秒为单位进行测量。

所以你需要从中抵消它。例如:

Calendar uuidEpoch = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
uuidEpoch.clear();
uuidEpoch.set(1582, 9, 15, 0, 0, 0); // 9 = October
long epochMillis = uuidEpoch.getTime().getTime();

long time = (uuid.timestamp() / 10000L) + epochMillis;
// Rest of code as before
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 UUID 版本 1 获取 UNIX 时间戳 的相关文章

随机推荐

  • 如果 isAvailableForServiceType 方法返回 NO 我该怎么办

    如果我能做什么isAvailableForServiceType例如 如果是 Twitter 方法会返回 NO if SLComposeViewController isAvailableForServiceType SLServiceTy
  • 是否可以使用 navigator.share 共享文件(PDF)而不是 url?

    我有一个从服务器生成的 pdf 文件 我希望允许用户通过 navigator share 共享该文件 是否可以共享文件而不是 URL navigator share title Web Fundamentals text Check out
  • 删除由于 gnuplot 中突然跳跃而导致的垂直线

    我正在尝试绘制一个包含 gnuplot 中不连续性的函数 结果 gnuplot 自动绘制一条连接跳跃不连续点的垂直线 我想删除这一行 我环顾四周 发现了两种解决方案 但都不起作用 一种解决方案是使用smooth unique绘图时 另一种是
  • 实际类型的值比较不正确

    我有领域REAL输入数据库 我使用 PostgreSQL 和查询 SELECT FROM my table WHERE my field 0 15 不返回包含以下值的行my field is 0 15 但例如查询 SELECT FROM m
  • VSCode 调试 C++:为什么流程不在断点处停止?

    VSCode 版本 1 3 1 操作系统版本 Ubuntu 14 04 我在 Ubuntu 14 04 上调试 C 项目 我运行 cmake 来生成可执行文件并设置 VSCode 配置文件 当我按F5调试时 程序运行良好 但没有停在断点处
  • 如何显示 Google 字体预览

    我正在将 Google 字体系列名称加载到选择列表中 当用户从列表中选择任何字体系列时 我会动态加载该字体 我的代码 get https www googleapis com webfonts v1 webfonts key functio
  • CakePHP 单元测试装置名称约定 啊?

    我一直在用头撞墙 试图找出为什么我的灯具无法正确加载 当我尝试运行测试时 会呈现我的布局 如果我注释掉该装置 测试就会正常运行 我已经把这个问题看了一百遍了 但我似乎看不出哪里出了问题 这是我的 Videosview test php Ap
  • 如何定量测量源和显示器之间的 gstreamer H264 延迟?

    我有一个项目 我们使用 gstreamer x264 等将视频流通过本地网络多播到多个接收器 连接到显示器的专用计算机 我们在视频源 摄像机 系统和显示监视器上使用 gstreamer 我们使用 RTP 有效负载 96 和 libx264
  • 在 Base SAS 中,如何自动刷新资源管理器?

    我相当确定这一定是困扰其他人的问题 因此必须有一个解决方案 我编写代码并想要快速检查数据集 但它不存在 我需要选择窗口 单击 查看 然后单击 刷新 是否有我可以使用的键盘快捷键或我可以编写的宏来为我做到这一点 我知道这很懒 但它让我烦恼 任
  • 按日期绘制 Twitter 搜索结果的词云? (使用R)

    我希望在 twitter 上搜索一个单词 假设是 google 然后能够生成 twitts 中使用的单词的标签云 但是根据日期 例如 有一个小时的移动窗口 移动时间为每次 10 分钟 并向我展示不同的单词如何在一天中被更频繁地使用 对于如何
  • 如何将 WindowsIdentity 转换为 NetworkCredential?

    我们如何转换一个WindowsIdentity to a NetworkCredential 我正在测试我的 WCF 服务以验证匿名调用者是否被阻止 为此 我想做类似的事情 myProxy ClientCredentials Windows
  • jquery在不同领域检测常用词

    在 jquery 中 如何确定一个元素是否使用了另一个元素中正在使用的单词 例如 如果一个字段包含值 fishbucket 而另一个字段包含fishdome 那么您将如何扫描这两个字段来获取常用词 在本例中为 fish 或者即使是数字 假设
  • 定位jar包内的资源

    我有一个静态类 在该类中图像被加载到 BufferedImage 对象中 如下所示 File groundTopImageFile new File src main resources ground grass top png 现在 当我
  • 在 OCaml 中模拟 try-with-finally

    OCaml s try with不提供finally像Java这样的子句 不过 它会很有用 尤其是在处理副作用时 例如 我喜欢打开一个文件 将打开的文件传递给一个函数 然后关闭它 如果函数引发异常 我必须捕获它才能有机会关闭文件 当打开多个
  • 三.js。应用 EdgesHelper 后更改网格位置

    我尝试在应用 EdgesHelper 后旋转或更改网格的位置 但它不起作用 网格保持在同一位置 没有 EdgesHelper 它工作正常 我究竟做错了什么 var mesh new THREE Mesh geometry material
  • 从元组中获取元素[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 ADL 找不到函数模板 https stackoverflow com questions 2953684 why doesnt adl find function templates Cal
  • 不允许设置设备所有者

    我知道有人提出了问题 但我无法获得设备所有权 我使用的是三星 xcover 4 安卓 7 0 我启动这个命令 C Users xxx AppData Local Android Sdk platform tools gt adb shell
  • 如何为所有 NDB 数据存储条目分配默认值?

    我必须向现有的 NDB 类添加一个新属性 class AppList ndb Model ignore ndb BooleanProperty default False new property 然后我将像下面这样使用它 entries
  • 按住鼠标左键时不会生成 WM_MOUSELEAVE

    在我的 Win32 应用程序中 当我按住鼠标左键并快速将鼠标指针移出窗口时 我没有收到 WM MOUSELEAVE 消息 但是如果我按住鼠标左键 从窗口内部开始并缓慢移动经过窗口边缘 它将生成一个 WM MOUSELEAVE 如果我不按住鼠
  • 从 UUID 版本 1 获取 UNIX 时间戳

    在我们的 Java 应用程序中 我们尝试从 UUID 获取 UNIX 时间版本1 https en wikipedia org wiki Universally unique identifier Version 1 date time a