如何在Java中将时间戳转换为纪元/纳秒?

2024-01-03

我有一个Date的价值Tue Mar 27 17:57:35 PDT 2018,我正在尝试将其转换为纳米/纪元时间格式。我试过了

Date ts = data.get("timestamp").getTime()
Instant ts = data.get("timestamp").toInstant()

但这些都不起作用。我进行了大量搜索,似乎找不到允许我将此格式转换为纪元的示例。


“nano/epoch 格式”到底是什么?只是自 UNIX 纪元以来纳秒数的数值吗?

如果是这种情况,您可以将java.util.Date to Instant using toInstant()方法,然后从中获取数值:

Instant instant = date.toInstant();
long secondsSinceEpoch = instant.getEpochSecond();
int nanoSeconds = instant.getNano();

不幸的是,纳秒总数太大而无法容纳long,因此您需要输入 2 个单独的字段(如上所述):自纪元以来的秒数和纳秒值(9 个小数位)。

只是提醒一下Date具有毫秒精度(只有 3 个小数位),因此无法获得纳秒精度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java中将时间戳转换为纪元/纳秒? 的相关文章

随机推荐