Java如何计算时差

时间:2010-09-28 05:47:12

标签: java time

如果用户输入为2255且2305输出应为10分钟,如何计算24小时内的时差。我有一个想法是将输入分为2个部分,2个数字和2个数字。前2位是小时,是60到几分钟。然后加上第二个2位数,然后计算差异。我不想使用任何日期日历数据类型或API来解决它。感谢

2 个答案:

答案 0 :(得分:5)

    String time1 = "2255";
    String time2 = "2305";

    SimpleDateFormat format = new SimpleDateFormat("HHmm");
    Date date1 = format.parse(time1);
    Date date2 = format.parse(time2);
    long difference = date2.getTime() - date1.getTime();        

差异在于毫秒,您可以将其转换为任何单位,或者您可以使用apache-commons中的DurationFormatUtils来格式化它。

System.out.println("Duration: "+DurationFormatUtils.formatDuration(difference, "HH:mm"));

apache commons有很好的实用功能,apache-commons (lang)

答案 1 :(得分:1)

  

如何在不使用String chartAt。

的情况下获得前2位数字

最高的两位数:数字/ 100 最低的二位数字:数字%100

但如果用户输入3:05或3-05,你会怎么做?我认为这是可用性问题。最佳解决方案是让用户可以理解UI。例如,您可以使用单独的字段数小时和分钟。