【问题标题】:Find difference between two time in java [duplicate]在java中查找两个时间之间的差异[重复]
【发布时间】:2012-12-22 06:27:29
【问题描述】:

可能重复:
How to convert Milliseconds to “X mins, x seconds” in Java?
Calculating the Difference Between Two Java Date Instances

我有这样的功能:

 public String setDateAndTime(int h, int m, int s,int amPm) {
    TimeZone nst = TimeZone.getTimeZone("GMT+5:45");
    Calendar calendar1 = new GregorianCalendar(nst);
    Date currentTime1 = new Date();
    calendar1.setTime(currentTime1);


    calendar1.set(Calendar.HOUR, h);
    calendar1.set(Calendar.MINUTE, m);
    calendar1.set(Calendar.SECOND, s);
    calendar1.set(Calendar.YEAR, calendar1.get(Calendar.YEAR));
    calendar1.set(Calendar.MONTH, calendar1.get(Calendar.MONTH));
    calendar1.set(Calendar.DAY_OF_MONTH, calendar1.get(Calendar.DAY_OF_MONTH));
    calendar1.set(Calendar.AM_PM, amPm);


    DateFormat formatter = new SimpleDateFormat("hh:mm:ss a");
    String date = formatter.format(calendar1.getTime());

    return date;
}

通过这个函数我创建了两个日期(字符串)

String s1=setDateAndTime(12,00,00,1);//12:00:00 PM
String s2=setDateAndTime(3,15,45,0);//3:15:45 AM

现在如何找到s1和s2之间的差异,我还需要小时,分钟和秒,以便我可以做进一步的处理。

【问题讨论】:

  • 我会先让你的函数返回一个日期类型,而不是一个字符串
  • @BrianAgnew 我需要在 jsp 页面中显示这些时间,所以我使用字符串而不是日期。
  • 你为什么不把你的时间字符串转换成毫秒,计算你的差,然后再转换成一个时间字符串呢?
  • @PeterLawrey 我会试一试...是的,我来自尼泊尔...:)

标签: java


【解决方案1】:

您可以通过调用getTime() 获取以毫秒为单位的时间。然后比较long 值。 milliis/1000 给出秒,millis/60/1000 给出分钟,millis/3600/1000 给出小时,等等。

您也可以使用 JodaTime 等 3rd 方库,但如果您需要这种一次性的 Joda 太多了。

【讨论】:

  • 你能举一些例子吗
猜你喜欢
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-07
  • 2022-12-20
  • 2014-08-05
  • 1970-01-01
相关资源
最近更新 更多