如何在Java中使用日期执行算术运算?

时间:2011-06-30 15:14:21

标签: java

  

可能重复:
  How to calculate time difference in java?

实际上我想在Java中减去两个日期。我尝试了很多但不能成功。所以任何人都请帮助我。

Date dtStartDate=pCycMan.getStartDate();

Date dtEndDate=pCycMan.getEndDate();

如何减去这两个日期?

8 个答案:

答案 0 :(得分:6)

  

我如何减去这两个日期?

你可以得到这样的毫秒差异:

dtEndDate.getTime() - dtStartDate.getTime()

getTime返回自1970年1月1日00:00:00 GMT以来的毫秒数。)

但是,对于这种类型的日期算术,Joda time library具有适当的持续时间类(Duration)可能是更好的选择。

答案 1 :(得分:6)

long msDiff = dtEndDate.getTime() - dtStartDate.getTime()

msDiff现在保存两个日期之间的毫秒数差异。随意使用除法和运算符转换为其他单位。

答案 2 :(得分:1)

要减去日期,您可以将它们作为长getTime()获取并减去返回的值。

答案 3 :(得分:0)

使用Calendar类。

用法:

Calendar c = Calendar.getInstance();
c.setTime(dtStartDate);
int date = c.get(Calendar.YEAR); //int represents the year of the date
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); // int represents dayOfWeek as defined in link.

答案 4 :(得分:0)

从这些日期创建两个Calendar对象,然后使用add()方法(也可用于子日期)。

答案 5 :(得分:0)

有一个框架可以在java中使用日期... http://joda-time.sourceforge.net/userguide.html 看一看,我相信它可以帮到你

答案 6 :(得分:0)

long diffInMillis = dtEndDate.getTimeInMillis() -  dtStartDate.getTimeInMillis();

答案 7 :(得分:0)

这取决于你想要什么。为了获得毫秒差异,请说dtStartDate.getTime() - dtEndDate.getTime()

要在天,小时等方面获得差异,请使用Calendar类(如after,before,compareTo,roll等方法可能有所帮助)。