如何将毫秒转换为Java中的“X mins,x秒”?

  • 回答 (2)
  • 关注 (0)
  • 查看 (206)

想记录System.currentTimeMillis()用户在我的程序中开始某些事情的时间。当他完成时,我会System.currentTimeMillis()从start变量中减去电流,并且我想用时间流逝的时间来显示,例如“XX小时,XX分钟,XX秒”或甚至“XX分钟,XX秒”不可能一个小时带一个人。

什么是最好的方法?

汐雲風汐雲風提问于
死者是小智回答于
long time = 1536259;
return (new SimpleDateFormat("mm:ss:SSS")).format(new Date(time));

打印:

25:36:259

天使的炫翼回答于
 /**
     * Convert a millisecond duration to a string format
     * 
     * @param millis A duration to convert to a string form
     * @return A string of the form "X Days Y Hours Z Minutes A Seconds".
     */
    public static String getDurationBreakdown(long millis)
    {
        if(millis < 0)
        {
            throw new IllegalArgumentException("Duration must be greater than zero!");
        }
        long days = TimeUnit.MILLISECONDS.toDays(millis);
        millis -= TimeUnit.DAYS.toMillis(days);
        long hours = TimeUnit.MILLISECONDS.toHours(millis);
        millis -= TimeUnit.HOURS.toMillis(hours);
        long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
        millis -= TimeUnit.MINUTES.toMillis(minutes);
        long seconds = TimeUnit.MILLISECONDS.toSeconds(millis);
        StringBuilder sb = new StringBuilder(64);
        sb.append(days);
        sb.append(" Days ");
        sb.append(hours);
        sb.append(" Hours ");
        sb.append(minutes);
        sb.append(" Minutes ");
        sb.append(seconds);
        sb.append(" Seconds");
        return(sb.toString());
    }

请享用!

扫码关注云+社区

领取腾讯云代金券