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

问题描述

| 如何将给定时间的当前时间转换为时间格式为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
    

解决方法

        一旦简单,您就可以为两个日期调用getTime(),然后像这样减去它们:
long timeDiff = today.getTime() - ts1.getTime()
那应该使您两次之间的毫秒数有所不同。之后,您知道1秒是1k毫秒,1min是60s,1h是60分钟,依此类推。     ,        看看Commons Lang DurationFormatUtils。 或Joda-Time的PeriodFormatter。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...