我有两个日期格式的时间戳。
如何获得给定范围内的天数?
SimpleDateFormat sdf = new SimpleDateFormat("dd MM yyyy HH:mm:ss");
Date begin=sdf.parse("27 02 2014 23:00:00");
Date end=sdf.parse("01 03 2014 00:00:10");
在上述情况下,必须是3,即(2月27日,2月28日和1月1日)
int days = (int) (end.getTime() - begin.getTime())/(1000*3600*24) ;
上述方法在考虑整个时间戳时没有帮助。
答案 0 :(得分:2)
你可以使用JodaTime。
import org.joda.*;
import org.joda.time.*;
DateTime start = new DateTime(2014, 02, 27, 0, 0, 0, 0);
DateTime end = new DateTime(2014, 03, 1, 01, 0, 0, 0);
Interval interval = new Interval(start, end);
Period period = interval.toPeriod();
int days = period.getDays();
更多信息here。
但是,如果你想在不考虑小时的情况下找到一个范围内的天数,而只考虑一天,一个月和一年...为什么你不做你正在做的事情但只解析日期得到日,月和年?这样,您用来查找天数的公式将始终有效。