DateSpaceHelper工具类
为了便于使用封装成DateSpaceHelper工具类:
package com.date.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/** * * @author http://blog.csdn.net/u010989191 * */
public final class DateSpaceHelper {
//定义好查询的类型type
public static String SECOND = "second";
public static String MINUTE = "minute";
public static String HOUR = "hour";
public static String DAY = "day";
private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//格式化日期
//禁止实例化
private DateSpaceHelper(){}
/** * 重新设置日期格式 * @param format */
public static void setFormat(SimpleDateFormat format) {
DateSpaceHelper.format = format;
}
/** * 获取相差的月份 * 秒:/1000 * 分:/(1000*60) * 时:/(1000*60*60) * 天:/(1000*60*60*24) * @param type 指定是查相差的秒 分 时 还是 天 * DateSpaceHelper.SECOND 查询相差的秒 * DateSpaceHelper.MINUTE 查询相差的分 * DateSpaceHelper.HOUR 查询相差的小时 * DateSpaceHelper.DAY 查询相差的天 * @param sourceDateStr 如"2016-06-01" * @param compareDateStr 如"2016-06-01" * @return */
public static long getDateSpace(String type,String sourceDateStr,String compareDateStr)
{
Integer second = 1000;
Integer minute = second*60;
Integer hour = minute*60;
Integer day = hour*24;
try {
Calendar sourceDate = Calendar.getInstance();
Calendar compareDate = Calendar.getInstance();
sourceDate.setTime(format.parse(sourceDateStr));
compareDate.setTime(format.parse(compareDateStr));
//获取每个日期的毫秒数
Long sourceLong = sourceDate.getTimeInMillis();
Long compareLong = compareDate.getTimeInMillis();
long result = -1;
switch (type) {
case "second":
result = Math.abs((sourceLong - compareLong)/second);
break;
case "minute":
result = Math.abs((sourceLong - compareLong)/minute);
break;
case "hour":
result = Math.abs((sourceLong - compareLong)/hour);
break;
case "day":
result = Math.abs((sourceLong - compareLong)/day);
break;
}
return result;
} catch (ParseException e) {
e.printStackTrace();
}
return -1;
}
}
测试类
package com.date.test;
import java.text.ParseException;
public class DateTest {
public static void main(String[] args) throws ParseException {
//测试相差的月份
System.out.println("2015-06-01 2014-06-01 相差的天数:"+DateSpaceHelper.getDateSpace(DateSpaceHelper.DAY,"2015-06-01", "2014-06-01"));
System.out.println("2015-06-01 2014-06-01 相差的小时数:"+DateSpaceHelper.getDateSpace(DateSpaceHelper.HOUR,"2014-06-01", "2015-06-01"));
System.out.println("2015-06-01 2014-06-01 相差的分钟数:"+DateSpaceHelper.getDateSpace(DateSpaceHelper.MINUTE,"2014-06-01", "2015-06-01"));
System.out.println("2015-06-01 2014-06-01 相差的秒数:"+DateSpaceHelper.getDateSpace(DateSpaceHelper.SECOND,"2014-06-01", "2015-06-01"));
}
}