преобразование метки времени в наносекунды - PullRequest
0 голосов
/ 28 марта 2012

У меня есть определенное значение даты и времени, скажем 28-3-2012 (дата) - 10:36:45 (время). Я хочу преобразовать всю эту временную метку в наносекунды с точностью до наносекунд. Как и в случае, пользователь будет вводить время и дату, как показано, но внутренне я должен быть точным до наносекунд и преобразовывать все это в наносекунды, чтобы сформировать уникальный ключ, назначенный конкретному объекту, созданному в это конкретное время. Может кто-нибудь, пожалуйста, помогите мне с тем же ..

Ответы [ 3 ]

2 голосов
/ 28 марта 2012

Точность даты выборки составляет секунд , представление в формате long представляет собой значение в миллисекундах единиц .Вы можете преобразовать это в наносекунду единиц , умножив это на 1 000 000.

Но, на самом деле, он просто добавит девять нулей к первоначальному значению даты и не добавит никакой дополнительной информации , которая вам понадобится для создания хеш-значений.У объекта Date нет «скрытой» точности наносекунды.


Java предлагает метод System.nanoTime(), который возвращает значение времени в наносекундных единицах.Но мы не можем обернуть его в Date объект без потери точности.Тем не менее, в вашем случае это может помочь создать уникальные «значения времени».

1 голос
/ 28 марта 2012

если у вас есть объект Date:

long nanosecond = date.getTime() * 1000000;

или вы можете проанализировать строку времени, если она выглядит как (дд / мм / гггг ЧЧ: мм: сс)

 DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
 Date date = df.parse(dateString);
 long nanosecond = date.getTime() * 1000000;
0 голосов
/ 28 марта 2012

Полагаю, самым простым способом было бы использовать поддержку JDK для этого. Попробуйте следовать

TimeUnit.NANOSECONDS.toNanos (продолжительность)

Здесь длительность одного параметра будет длинным значением, в которое вы хотите преобразовать значение в наносекундах.

Надеюсь, это поможет.

...