Java 求两个日期相减
- 代码
- 结果
- 获取当前日期前半个小时的时间和后半个小时的时间
- 得到的结果
- 指定一个日期 获取指定日期前10分钟的时间
- 结果
自己做下笔记方便后面查阅
日期格式:yyyy-MM-dd HH:mm:ss
代码
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = df.parse("2004-01-05 13:31:40");
Date d2 = df.parse("2004-01-02 13:30:40");
long diff = d1.getTime() - d2.getTime();//这样得到的差值是毫秒级别
long days = diff / (1000 * 60 * 60 * 24);
long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
System.out.println("结果:\t"+days+"天"+hours+"小时"+minutes+"分");
结果
结果: 3天0小时1分
获取当前日期前半个小时的时间和后半个小时的时间
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
System.out.println("当前时间:" + sdf.format(now));
Calendar nowTime = Calendar.getInstance();
nowTime.add(Calendar.MINUTE,30); //30分钟后的时间
Calendar nowTime2 = Calendar.getInstance();
nowTime2.add(Calendar.MINUTE,-30); // 30分钟前的时间
System.out.println("30分钟后的时间:\t"+sdf.format(nowTime.getTime()));
System.out.println("30分钟前的时间:\t"+sdf.format(nowTime2.getTime()));
得到的结果
当前时间:2020-06-10 17:19:13
30分钟后的时间: 2020-06-10 17:49:13
30分钟前的时间: 2020-06-10 16:49:13
指定一个日期 获取指定日期前10分钟的时间
Calendar nowTime3 = Calendar.getInstance();
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
nowTime3.setTime(sdf.parse("2020-06-11 12:00:00"));
nowTime3.add(Calendar.MINUTE,-10);
System.out.println("10分钟之前的时间是:"+sdf.format(nowTime3.getTime()));
结果
10分钟之前的时间是:2020-06-11 11:50:00