Java实现两个日期相减等于天数
更新时间:2023年09月05日 10:37:27 作者:Live a happy life
这篇文章主要介绍了Java两个日期相减等于天数的实现方式,本文通过两种方式结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
需求
根据当前时间 如: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");到此这篇关于Java两个日期相减等于天数的文章就介绍到这了,更多相关java日期相减等于天数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
ArrayList和JSONArray边遍历边删除到底该如何做
这篇文章主要介绍了ArrayList和JSONArray边遍历边删除到底该如何做,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-12-12
如何在spring boot项目中使用Spring Security的BCryptPasswordE
本文介绍如何在Spring Boot项目中通过修改pom.xml引入安全依赖,添加配置类以解除默认的HTTP请求拦截,以及如何创建BCryptPasswordEncoder对象进行密码的加密和匹配,通过这些步骤,可以有效地增强应用的安全性2023-08-08


最新评论