Форматер даты НЕ отражает правильную строку, если разница во времени составляет секунды - PullRequest
0 голосов
/ 19 марта 2019

У меня есть сценарий, в котором мне нужно сохранить время приема пакета в некоторый интервал времени.Интервал в секундах или минутах.(Меньше промежутка времени).

Вот мой простой тестовый класс, где я предоставляю интервал в 60 секунд для следующего пакета.

  public static void main(String[] args) {
        Date currDate = new Date();
        Date nextPointDate = new Date(currDate.getTime() + 60 * 1000);

        System.out.println(currDate + "  " + nextPointDate);

        System.out.println(DateUtil.getFormattedDate(currDate, "yyyy-MM-dd HH:mm:ss")
        + ", " + DateUtil.getFormattedDate(nextPointDate, "yyyy-MM-dd HH:mm:ss"));
    }

вот мой метод Date Util, которыйВызван здесь:

public static String getFormattedDate(Date date, String pattern) {
    DateFormat dateFormat = new SimpleDateFormat(pattern);
    return dateFormat.format(new Date());
}

, и я получил вывод, как показано ниже:

Tue Mar 19 14:57:50 IST 2019  Tue Mar 19 14:58:50 IST 2019
2019-03-19 14:57:50, 2019-03-19 14:57:50

Первая строка вывода верна и показывает разницу в 1 мин., но вторая строка выводавсе та же строка для обоих.

В чем причина этого.Как я могу достичь ожидаемого результата?

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Человек, ваш return dateFormat.format(new Date()); вызывает проблему: /

Ваша правильная реализация должна быть return dateFormat.format(date);

1 голос
/ 19 марта 2019

Вы создаете новый Date в DateUtil!

public static String getFormattedDate(Date date, String pattern) {
    DateFormat dateFormat = new SimpleDateFormat(pattern);
    return dateFormat.format(new Date()); // change it to the date passed in!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...