在java中进行日期时间比较的4种方法
1. Date.compareTo()
java.util.Date提供了在Java中比较两个日期的经典方法compareTo()。
- 如果两个日期相等,则返回值为0。
- 如果Date在date参数之后,则返回值大于0。
- 如果Date在date参数之前,则返回值小于0。
@Test
void testDateCompare() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2009-12-31");
Date date2 = sdf.parse("2019-01-31");
System.out.println("date1 : " + sdf.format(date1));
System.out.println("date2 : " + sdf.format(date2));
if (date1.compareTo(date2) > 0) {
System.out.println("Date1 时间在 Date2 之后");
} else if (date1.compareTo(date2) < 0) {
System.out.println("Date1 时间在 Date2 之前");
} else if (date1.compareTo(date2) == 0) {
System.out.println("Date1 时间与 Date2 相等");
} else {
System.out.println("程序怎么会运行到这里?正常应该不会");
}
}
输出结果:
date1 : 2009-12-31
date2 : 2019-01-31
Date1 时间在 Date2 之前
2. Date.before(),Date.after()和Date.equals()
一种语义上比较友好的方法来比较两个java.util.Date
@Test
void testDateCompare2() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2009-12-31");
Date date2 = sdf.parse("2019-01-31");
System.out.println("date1 : " + sdf.format(date1));
System.out.println("date2 : " + sdf.format(date2));
if (date1.after(date2)) {
System.out.println("Date1 时间在 Date2 之后");
}
if (date1.before(date2)) {
System.out.println("Date1 时间在 Date2 之前");
}
if (date1.equals(date2)) {
System.out.println("Date1 时间与 Date2 相等");
}
}
输出结果
date1 : 2009-12-31
date2 : 2019-01-31
Date1 时间在 Date2 之前
3. Calender.before(),Calender.after()和Calender.equals()
使用java.util.Calendar比较两个Date日期
@Test
void testDateCompare3() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2009-12-31");
Date date2 = sdf.parse("2019-01-31");
System.out.println("date1 : " + sdf.format(date1));
System.out.println("date2 : " + sdf.format(date2));
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
if (cal1.after(cal2)) {
System.out.println("Date1 时间在 Date2 之后");
}
if (cal1.before(cal2)) {
System.out.println("Date1 时间在 Date2 之前");
}
if (cal1.equals(cal2)) {
System.out.println("Date1 时间与 Date2 相等");
}
}
输出结果:
date1 : 2009-12-31
date2 : 2019-01-31
Date1 时间在 Date2 之前
4. Java 8日期比较方法
在Java 8中,可以使用新的isBefore(),isAfter(),isEqual()和compareTo()来比较LocalDate,LocalTime和LocalDateTime。以下示例以比较两个java.time.LocalDate
@Test
void testDateCompare4() throws ParseException {
DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date1 = LocalDate.of(2009, 12, 31);
LocalDate date2 = LocalDate.of(2019, 1, 31);
System.out.println("date1 : " + sdf.format(date1));
System.out.println("date2 : " + sdf.format(date2));
System.out.println("Is...");
if (date1.isAfter(date2)) {
System.out.println("Date1 时间在 Date2 之后");
}
if (date1.isBefore(date2)) {
System.out.println("Date1 时间在 Date2 之前");
}
if (date1.isEqual(date2)) {
System.out.println("Date1 时间与 Date2 相等");
}
}
输出结果
date1 : 2009-12-31
date2 : 2019-01-31
Is...
Date1 时间在 Date2 之前
欢迎关注我的博客,里面有很多精品合集
- 本文转载注明出处(必须带连接,不能只转文字):字母哥博客。
觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力! 。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。
- 《手摸手教你学Spring Boot2.0》
- 《Spring Security-JWT-OAuth2一本通》
- 《实战前后端分离RBAC权限管理系统》
- 《实战SpringCloud微服务从青铜到王者》
- 《VUE深入浅出系列》
在java中进行日期时间比较的4种方法的更多相关文章
- Java中取小数点后两位(四种方法)
摘自http://irobot.iteye.com/blog/285537 Java中取小数点后两位(四种方法) 一 Long是长整型,怎么有小数,是double吧 java.text.D ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- (转载)Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- Java中如何遍历Map对象的4种方法
在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHa ...
- 转!! Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- 【转】Java中如何遍历Map对象的4种方法
原文网址:http://blog.csdn.net/tjcyjd/article/details/11111401 在Java中如何遍历Map对象 How to Iterate Over a Map ...
- java中遍历MAP,嵌套map的几种方法
java中遍历MAP的几种方法 Map<String,String> map=new HashMap<String,String>(); map.put("us ...
- java中判断字符串是否相等有两种方法:
1.用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc",那么a==b将返回true.这是 ...
- Java中对List集合排序的两种方法
第一种方法,就是list中对象实现Comparable接口,代码如下: public class Person implements Comparable<Person> { privat ...
随机推荐
- Flask02-Template
## 基础使用 $ vim app/templates/index.html > <html> > <head> > <title>{{title ...
- Python实用笔记 (17)模块
一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块. 现在,假设我们的abc和xyz这两个模块名字与其他模块冲突了,于是我们可以通过包来组织模块,避免冲 ...
- P2194 HXY烧情侣【Tarjan】
前言 当时和\(GYZ\)大佬一起做这个题,他表示这个题对他很不友好(手动滑稽) 题目描述 众所周知,\(HXY\) 已经加入了 \(FFF\) 团.现在她要开始喜(sang)闻(xin)乐(bing ...
- SpringBoot 2.x添加Druid作为数据库连接池
整合了一大堆ORM,是时候增加一个连接池了,此处选用了druid作为连接池,druid是alibaba开源平台上的一个数据库连接池实现,对比c3p0,dbcp加入了对数据库的监控,不知道甩出几条街的距 ...
- java语言基础(五)_Scanner类_Random类_ArrayList类
API API(Application Programming Interface),应用程序编程接口.Java API是一本程序员的字典 ,是JDK中提供给程序员使用的类的说明文档.这些类将底层的代 ...
- 初步了解JVM
先看一眼JVM虚拟机运行时的内存模型: 1.方法区 Perm(永久代.非堆) 2.虚拟机栈 3.本地方法栈 (Native方法) 4.堆 5.程序计数器 1 首先的问题是:jvm如何知道那些对象需要回 ...
- 每日一题 - 剑指 Offer 50. 第一个只出现一次的字符
题目信息 时间: 2019-07-03 题目链接:Leetcode tag:哈希表 难易程度:简单 题目描述: 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字 ...
- HTML5(七)Web 存储
HTML5 Web 存储 HTML5 web 存储,一个比cookie更好的本地存储方式. 什么是 HTML5 Web 存储? 使用HTML5可以在本地存储用户的浏览数据. 早些时候,本地存储使用的是 ...
- unity position 记录
localPosition为自身矩形中心点(Pivot)与其父节点矩形中心点(Pivot)的相对位置坐标,与自身锚点(Anchors)无关.anchoredPosition为矩形中心点(Pivot)与 ...
- day15 作业
day15 作业 目录 day15 作业 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第一题 ===================题目一=================== input ...