Преобразовать разницу во времени в формат ЧЧ: мм [Java] - PullRequest
1 голос
/ 15 июня 2011

Как я могу преобразовать разницу текущего времени в данное время, чтобы создать строку с форматом времени: ЧЧ: мм? ех. 18:36

Я сделал следующее, но это не 24-часовой формат, он добавит AM / PM к концу и у него будет 3 часа.

        java.util.Date today = new java.util.Date();
        java.sql.Timestamp ts1 = new java.sql.Timestamp(today.getTime());

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
        java.util.Date parsedDate = dateFormat.parse(time);
        java.sql.Timestamp ts2 = new java.sql.Timestamp(parsedDate.getTime());

        long nowTime = ts1.getTime();
        long givenTime = ts2.getTime();

        long timeDiff = givenTime - nowTime;

        //convert to string
        java.util.Date d = new java.util.Date(timeDiff);
        result = DateFormat.getTimeInstance(DateFormat.SHORT).format(d);
        //Outputs: 6:56 PM for example

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Однажды вы можете просто вызвать getTime () для обеих дат и затем вычесть их следующим образом:

long timeDiff = today.getTime() - ts1.getTime()

Это должно дать вам разницу в миллисекундах между двумя значениями времениПосле этого вы знаете, что одна секунда составляет 1 тыс. Миллисекунд, 1 мин и 60 с, 1 ч - 60 минут и т. Д.

2 голосов
/ 15 июня 2011

Посмотрите на Commons Lang DurationFormatUtils .

Или Joda-Time's PeriodFormatter .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...