【Java】两个日期相减等于天数

您所在的位置:网站首页 数据库日期相减计算天数怎么算 【Java】两个日期相减等于天数

【Java】两个日期相减等于天数

#【Java】两个日期相减等于天数| 来源: 网络整理| 查看: 265

目录 需求实现方式一方式二 注意

需求

根据当前时间 如:2020-10-13 减去过去的某一天 如:2020-09-30

实现 方式一 // 定义项目进行天数 long Days = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { long time = sdf.parse("2021-01-19").getTime(); long time1 = sdf.parse("2020-10-12") .getTime(); Days = (int) ((time -time1) /(24 * 60 * 60 * 1000)); } catch (ParseException e) { e.printStackTrace(); } 方式二 import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.Calendar; public class TestDay { public static void main(String[] args) { String dateStr1 = "2020-09-30"; String dateStr2 = "2021-01-12"; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); try { dateStr1 = sdf.format(sdf2.parse(dateStr1)); dateStr2 = sdf.format(sdf2.parse(dateStr2)); } catch (ParseException e) { e.printStackTrace(); } long time1 = time(dateStr1); long time2 = time(dateStr2); // 相减得出的天数mills long mills = time1> time2 ? time1 - time2 : time2 - time1; System.out.println((int) (mills / 1000 / 3600 / 24)); } // 封装截取字符串 public static long time(String times){ int year = Integer.parseInt(times.substring(0, 4)); int month = Integer.parseInt(times.substring(4, 6)); int day = Integer.parseInt(times.substring(6, 8)); Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month - 1); c.set(Calendar.DAY_OF_MONTH, day); return (c.getTimeInMillis()); } } 注意

以上两种方式实现都可以,可以试着尝试一下,自己偏向第一种,代码少嘛,自己犯了一个不改犯的问题,导致排查了半天。自己定义yyyy-mm-dd ,mm小写,导致出现负数的情况,在转化的时候出现的问题,M与m的区别 区分 月和分,如:yyyy-MM-dd HH:mm:ss;

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 自己定义yyyy-mm-dd ,mm小写,导致出现负数的情况,M与m的区别 区分 月和分,如:yyyy-MM-dd HH:mm:ss; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3