java计算日期相差的天、时、分、秒
2016-06-10 22:44
337 查看
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")); } }
测试结果
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序