Объект Date вернет 1537865065664 для двух объектов Date Date в Java.
Я хочу разницу во времени, используя новый Date(). GetTime() в Java. Но я верну мне длинную цифру, как это 1537865065664. Как я могу получить разницу между двумя объектами Date(). Я приложу несколько частей моего кода ниже.
Date starttime=new Date();
long diff= new Date().getTime() - starttime.getTime()
System.out.println("hangupClicked New Time :: "+new Date().getTime()+" :: "+starttime.getTime());
Выход:: зависание кликнуло Новое время:: 1537865248609:: 1537865348612
5 ответов
new Date().getTime() возвращает время в миллисекундах. Так что если вы хотите за секунды, вам нужно разделить разницу на 1000.
Date starttime=new Date();
long diff= (new Date().getTime() - starttime.getTime())/1000;
Разница, полученная с использованием date1.getTime() - date2.getTime(), выражается в миллисекундах. Вы можете разделить вывод на 1000, чтобы получить разницу в секундах.
(date1.getTime() - date2.getTime())/1000;
java.time
Instant startTime = Instant.now();
Duration diff = Duration.between(startTime, Instant.now());
System.out.println("Difference in seconds: " + diff.getSeconds());
Этот фрагмент только что напечатан:
Difference in seconds: 0
Это, как и ожидалось, так как между двумя вызовами нет полной секунды Instant.now()
,
Что пошло не так в вашем коде?
Вы рассчитывали разницу в миллисекундах между вашими двумя Date
объекты правильно. Вы не напечатали разницу и, следовательно, никогда не видели, что это правильно. И вы не конвертировали это в секунды.
Чтобы проиллюстрировать первый пункт, я добавил эту строку в ваш код:
System.out.println("diff (milliseconds):: " + diff);
Тогда я получил этот вывод из него:
hangupClicked New Time :: 1537890219204 :: 1537890219204
diff (milliseconds):: 0
Тем не менее, вы не должны использовать Date
в 2018 году. Этот класс давно устарел и в то же время плохо спроектирован. Вы должны предпочесть использовать java.time, современный Java API даты и времени.
связи
- Учебник Oracle: Дата и время, объясняющие, как использовать
java.time
, - Все о java.util.Date в блоге Джона Скита по кодированию
Если вы хотите в секунду, то разделите разницу на 1000, тогда вы получите в секунду. Date (). GetTime() возвращает значение в миллисекундах.
Тип возврата getTime() - миллисекунды с 01-01-1970 до указанной даты. Таким образом, чтобы получить разницу в секундах, используйте ниже
(date.getTime() - date2.getTime())/1000;