将时间戳转换为纳秒

时间:2012-03-28 05:12:25

标签: java datetime time

我有一定的日期和时间值,如28-3-2012(日期) - 10:36:45(时间)。我希望将整个时间戳转换为纳秒,精度为纳秒。因为用户会输入如图所示的时间和日期,但在内部我必须精确到纳秒,并将整个事物转换为纳秒,以形成分配给在该特定时间创建的特定对象的唯一键。 有人可以帮我一样..

3 个答案:

答案 0 :(得分:2)

采样日期的精度为long格式的表示形式为毫秒单位的值。您可以将其转换为纳秒单位,将其乘以1,000,000。

但实际上,它只会在原始日期值上附加九个零,而不会添加您需要创建哈希值的任何额外信息Date对象没有“隐藏”的纳秒精度。


Java提供了方法System.nanoTime(),它以纳秒为单位返回时间值。但是我们不能在不失去精度的情况下将它包装在Date对象中。然而,在您的情况下,创建独特的“时间值”可能会有所帮助。

答案 1 :(得分:1)

如果你有Date对象:

long nanosecond = date.getTime() * 1000000;

或者您可以解析时间字符串,如果它看起来像(dd / MM / yyyy HH:mm:ss)

 DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
 Date date = df.parse(dateString);
 long nanosecond = date.getTime() * 1000000;

答案 2 :(得分:0)

我认为最简单的方法是使用JDK对此的支持。试试以下

  

TimeUnit.NANOSECONDS.toNanos(持续时间)

此处单个参数持续时间将是您要转换为NanoSeconds的长值。

希望这有帮助。