Java小白入门200例61之java中Date日期类型的大小比较

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例61之java中Date日期类型的大小比较相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  60.SimpleDateFormat时间格式化详解
►下一篇  62.java中日期查询常用实例

方案1

使用 compareTo 来处理。

package demo.demo61;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Compare {

	public static void main(String[] args) {

		String beginTime = "2021-09-13 14:30:32";
		String endTime = "2021-09-14 14:30:32";

		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		try {
			Date date1 = format.parse(beginTime);
			Date date2 = format.parse(endTime);
			
			int compareTo = date1.compareTo(date2);
			//通过返回来确定时间大小
			if(compareTo>0){
				System.out.println("date1 大于 date2");
			}else if(compareTo==0){
				System.out.println("date1 等于 date2");
			}else {
				System.out.println("date1 小于 date2");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

运行结果:

date1 小于 date2

方案2

使用 before 来处理。

package demo.demo61;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Compare2 {

	public static void main(String[] args) {

		String beginTime = "2021-09-13 14:30:32";
		String endTime = "2021-09-14 14:30:32";

		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		try {
			Date date1 = format.parse(beginTime);
			Date date2 = format.parse(endTime);
			
			boolean before = date1.before(date2);
			//通过返回来确定时间大小
			if(before){
				System.out.println("date1 在 date2 之前");
			}else {
				System.out.println("date1 在 date2 之后");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

运行结果:

date1 在 date2 之前

方案3

使用 after来处理。

package demo.demo61;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Compare3 {

	public static void main(String[] args) {

		String beginTime = "2021-09-13 14:30:32";
		String endTime = "2021-09-14 14:30:32";

		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		try {
			Date date1 = format.parse(beginTime);
			Date date2 = format.parse(endTime);
			
			boolean after = date1.after(date2);
			//通过返回来确定时间大小
			if(after){
				System.out.println("date1 在 date2 之后");
			}else {
				System.out.println("date1 在 date2 之前");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

运行结果:

date1 在 date2 之前

方案4

调用Date的getTime()方法获取到毫秒数来进行比较

package demo.demo61;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Compare4 {

	public static void main(String[] args) {

		String beginTime = "2021-09-13 14:30:32";
		String endTime = "2021-09-14 14:30:32";

		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		try {
			Date date1 = format.parse(beginTime);
			Date date2 = format.parse(endTime);
			
			long datetime1 = date1.getTime();
			long datetime2 = date2.getTime();
			//通过差来确定
			if(datetime1-datetime2>0){
				System.out.println("date1 在 date2 之后");
			}else {
				System.out.println("date1 在 date2 之前");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

运行:

date1 在 date2 之前

方案5

字符串类型的日期数据转化成长整型,然后比较大小。

package demo.demo61;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Compare5 {

	public static void main(String[] args) {

		String beginTime = "2021-09-13 14:30:32";
		String endTime = "2021-09-14 14:30:32";

		Long beginTimeL = Long.valueOf(beginTime.replaceAll("[-\\\\s:]", ""));
		Long endTimeL = Long.valueOf(endTime.replaceAll("[-\\\\s:]", ""));
		if(beginTimeL<endTimeL){
			System.out.println("beginTime 早于 endTime ");
		}else {
			System.out.println("beginTime 晚于 endTime ");
		}
	}
}

运行结果:

beginTime 早于 endTime

方案6

直接用字符串比较,如果一个日期格式是2021-01-01,但是另一个日期格式是2021-1-1时,直接使用字符串进行比较就会存在问题。

package demo.demo61;

public class Compare6 {

	public static void main(String[] args) {

		String beginTime = "2021-09-13 14:30:32";
		String endTime = "2021-09-14 14:30:32";
		if(beginTime.compareTo(endTime)<0){
			System.out.println("beginTime 早于 endTime ");
		}else {
			System.out.println("beginTime 晚于 endTime ");
		}
	}
}

运行结果:

beginTime 早于 endTime

小结

这节总结了“java中Date日期类型的大小比较”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  60.SimpleDateFormat时间格式化详解
►下一篇  62.java中日期查询常用实例

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例61之java中Date日期类型的大小比较的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例98之Java异常

Java小白入门200例95之Java匿名类

Java小白入门200例105之Java ArrayList类

Java小白入门200例107之Java LinkedList类

Java小白入门200例62之java中日期查询常用实例

Java小白入门200例112之Java HashSet类