Java如何实现日期大小比较呢?

乔欣 Java经验 发布时间:2023-02-18 21:23:18 阅读数:7243 1
下文笔者讲述使用java代码对日期比较的方法及示例分享,如下所示

日期比较大小的实现思路

实现思路:
    方式1:
	  借助LocalDate中的isBefore或isAfter或isEqual方法
	  即可实现
	方式2:
	  使用LocalDate中的compareTo方法
	方式3:
	  使用Calender对象的after和before方法
	方式4:
	  转换为长整型,然后进行比较
String beginTime = new String("2022-01-09 11:26:33");
String endTime = new String("2033-05-08 12:25:43");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date beginDate = df.parse(beginTime);
Date endDate = df.parse(endTime);

LocalDate beginDateLoc = LocalDate.of(2022, 11,3);
LocalDate endDateLoc = LocalDate.of(2033, 2, 3);


//LocalDate自带方法isBefore、isAfter和isEqual

if (beginDateLoc.isBefore(endDateLoc)) {
    System.out.println("beginDate is before endDate");
}
if (beginDateLoc.isAfter(endDateLoc)) {
    System.out.println("beginDate is after endDate");
}
if (beginDateLoc.isEqual(endDateLoc)) {
    System.out.println("beginDate is equal to endDate");
}
  
//LocalDate自带方法compareTo

System.out.println(beginDateLoc.compareTo(endDateLoc));
endDateLoc = LocalDate.of(2022,3, 17);
System.out.println(beginDateLoc.compareTo(endDateLoc));
  //当Date等于参数other,则返回0
  //当在 other之前,则返回小于0值,否则,返回大于0值
 

//Date自带方法before和after比较
System.out.println(beginDate.before(endDate));
System.out.println(beginDate.after(endDate));
System.out.println(beginDate.equals(endDate));

//将日期转化成长整型进行比较
/**
 * 功能描述:求两个时间相减后的毫秒数。<br/>
 * 差格式化时间后,计算 endDt 减 beginDt 的秒数。<br/>
 * millDif >0 : endDt > beginDt
 *
 * @param beginDt 开始时间
 * @param endDt   结束时间
 * @return Long 时间差,单位:milliseconds
 */
public static Long getMillSub(String beginDt, String endDt, String formatStr) {
	long millDif = 0;
	if (StringUtils.isBlank(formatStr)) {
		formatStr = "yyyy-MM-dd";
	}
	try {
		SimpleDateFormat df = new SimpleDateFormat(formatStr);
		Date beginDate = df.parse(beginDt);
		Date endDate = df.parse(endDt);
		millDif = endDate.getTime() - beginDate.getTime();
	} catch (Exception e) {
		log.error("日期转换失败,", e);
		return null;
	}
	return millDif;
} 

//Calender自带方法before()和after()
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(beginDate);
cal2.setTime(endDate);

if (cal1.after(cal2)) {
	System.out.println("beginTime is after endTime");
}
if (cal1.before(cal2)) {
	System.out.println("beginTime is before endTime");
}
if (cal1.equals(cal2)) {
	System.out.println("beginTime is equal to endTime");
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16767276325851.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者