Объект 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 даты и времени.

связи

Если вы хотите в секунду, то разделите разницу на 1000, тогда вы получите в секунду. Date (). GetTime() возвращает значение в миллисекундах.

Тип возврата getTime() - миллисекунды с 01-01-1970 до указанной даты. Таким образом, чтобы получить разницу в секундах, используйте ниже

(date.getTime() - date2.getTime())/1000;
Другие вопросы по тегам