以十进制表示法获取天数

时间:2012-09-17 10:10:50

标签: java date datetime time unix-timestamp

我正在尝试将两个日期的差异转换为天,以十进制表示法,例如,在我这样做的时候,

Date mostRecentDate = dates[0];
Date previousDate = dates[1];

long mostRecentTime = mostRecentDate.getTime();
long previousTime = previousDate.getTime(); 

long diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);

这将总是导致整天,但我希望如果两个日期的差异是两天半,我可以返回2.5或如果差异是6小时我可以返回0.25等。

谢谢!

2 个答案:

答案 0 :(得分:3)

DataType就是问题。你可以使用Double。

            Date[] dates = new Date[2];
        dates[1] = new Date(System.currentTimeMillis()-12*1000*60*60);
        dates[0] = new Date(System.currentTimeMillis());
        Date mostRecentDate = dates[0];
        Date previousDate = dates[1];

        double mostRecentTime = mostRecentDate.getTime();
        double previousTime = previousDate.getTime(); 

        double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);

答案 1 :(得分:2)

而不是很长,你需要使用double来获得实数的差异。

double diffInDays = (mostRecentTime - previousTime ) / (1000 * 60 * 60 * 24);

long类型是整数,因为你将值除以它将转换为整数并删除小数点的任何答案