实际上我想在Java中减去两个日期。我尝试了很多但不能成功。所以任何人都请帮助我。
Date dtStartDate=pCycMan.getStartDate();
Date dtEndDate=pCycMan.getEndDate();
如何减去这两个日期?
答案 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等方法可能有所帮助)。