将长时差转换为格式HH:mm [Java]

时间:2011-06-15 01:48:43

标签: java date time

如何在给定时间内转换当前时间的差异,以创建时间格式的字符串:HH:mm?恩。 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 个答案:

答案 0 :(得分:3)

你可以做的一件容易的事就是为两个日期调用getTime(),然后像这样减去它们:

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

这应该给你两次之间的毫秒差异。之后你知道一秒钟是1k毫秒,1分钟60秒,1小时是60分钟等等。

答案 1 :(得分:2)

看看Commons Lang DurationFormatUtils

或者Joda-Time的PeriodFormatter