繁体   English   中英

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

[英]Convert long time difference to format 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()

这应该会给你两次之间的毫秒差。 之后你知道一秒是 1k 毫秒,1min 是 60s,1h 是 60 分钟,依此类推。

看看 Commons Lang DurationFormatUtils

或 Joda-Time 的PeriodFormatter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM