java中如何进行日期时间比较?4种方法介绍
1. Date.compareto()
java.util.Date
提供了在Java中比较两个日期的经典方法compareto()。
1、如果两个日期相等,则返回值为0。
2、如果Date在date参数之后,则返回值大于0。
3、如果Date在date参数之前,则返回值小于0。
- @TestvoID 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-31date2 : 2019-01-31Date1 时间在 Date2 之前
2. Date.before(),Date.after()和Date.equals()
一种语义上比较友好的方法来比较两个java.util.Date
- @TestvoID 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-31date2 : 2019-01-31Date1 时间在 Date2 之前
3. Calender.before(),Calender.after()和Calender.equals()
使用java.util.Calendar
比较两个Date日期
- @TestvoID 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
- @TestvoID 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-31date2 : 2019-01-31Is...Date1 时间在 Date2 之前
java中如何进行日期时间比较?4种方法介绍相关推荐
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- Java中Double保留自定义小数位的几种方法
Java中Double保留自定义小数位的几种方法 在Java语言编程中我们有时候会有保留指定小数位的需求,那应该如何操作呢,下面带来几种方法:(这里的所有方法以保留两位小数位为例) 一. 四舍五入并保 ...
- qt5设置linux系统时间,Qt中使用QLabel显示时间的两种方法
Qt中使用QLabel显示时间的两种方法思路一致,只是实现方法不一样而已. main.cpp #include "displaytime.h" #include int main( ...
- mysql 时间戳与java_在Java中处理MySQL日期时间和时间戳
BalusC对该问题进行了很好的描述,但缺乏一个好的端到端代码,用户可以自己选择并测试它. 最佳做法是始终将日期时间以UTC时区存储在DB中.Sql时间戳类型没有时区信息. 将datetime值写入s ...
- java中如何进行日期时间比较
1. Date.compareTo() java.util.Date提供了在Java中比较两个日期的经典方法compareTo(). 1.如果两个日期相等,则返回值为0.2.如果Date在date参数 ...
- Java精确到毫秒获取时间的三种方法,以及适用场景
目前获取毫秒值时间戳大概有下面三种方法 // 方法一 System.currentTimeMillis(); // 方法二 Calendar.getInstance().getTimeInMillis ...
- Java中加载properties文件的6种方法
.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream( ...
- Java中double类型大小比较的五种方法
文章目录 1.使用BigDecimal 2.使用包装类Double 3.在误差范围内运行相等 4.转换成字符串 5.使用doubleToLongBits()方法 在Java中 int类型数据的大小比较 ...
- Java中对List集合排序的两种方法
第一种方法,就是list中对象实现Comparable接口,代码如下: public class Person implements Comparable<Person> {private ...
最新文章
- 电脑桌面便签小工具_电脑桌面工作任务提醒软件有哪些?多端同步提醒办公软件试试云便签...
- 使用脚本编写 Vim 编辑器,第 2 部分: 用户定义函数
- java定时执行一段代码
- java mysql embedded,java-将MySQL Connector / MXJ用于应用程序的优点/缺点/替代品有哪些...
- Unable to open /dev/sda的原因之一
- kafka 启动_Kafka管理工具Kafka Manager
- 大数据之-Hadoop之HDFS的API操作_判断是文件还是文件夹---大数据之hadoop工作笔记0062
- 电视商城之maven热部署
- mysql navicat报表_使用Navicat定时备份mysql数据库和创建报表并邮件自动发送
- php索引数组转键数组,PHP-Codeigniter:如何从指定索引转换数组值?
- 深入理解java虚拟机
- 深度学习-自然语言处理(NLP)-第三方库(工具包):Synonyms【更好的中文近义词、聊天机器人、智能问答工具包】
- Mac有些网址打不开问题解决办法
- python 类中public,protected,private定义方式
- 安装python之后电脑变卡_【Python】如何让电脑变卡?
- Hexo博客搭建教程
- cannot be cast to com.baomidou.mybatisplus.core.metadata.IPage
- 蛋白质结构预测 AlphaFold2、ColabFold、Uni-Fold、ESMFold
- 这款开源工具绝了!!!
- perp系列之六:perp工作截屏