热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java比较时间_在java中进行日期时间比较的4种方法

1.Date.compareTo()java.util.Date提供了在Java中比较两个日期的经典方法compareTo()。如果两个日期相等,则返回值为0。如果D

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) &#61;&#61; 0) {

System.out.println("Date1 时间与 Date2 相等");

} else {

System.out.println("程序怎么会运行到这里?正常应该不会");

}

}

输出结果&#xff1a;

date1 : 2009-12-31

date2 : 2019-01-31

Date1 时间在 Date2 之前

2. Date.before()&#xff0c;Date.after()和Date.equals()

一种语义上比较友好的方法来比较两个java.util.Date

&#64;Test

void testDateCompare2() throws ParseException {

SimpleDateFormat sdf &#61; new SimpleDateFormat("yyyy-MM-dd");

Date date1 &#61; sdf.parse("2009-12-31");

Date date2 &#61; sdf.parse("2019-01-31");

System.out.println("date1 : " &#43; sdf.format(date1));

System.out.println("date2 : " &#43; 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()&#xff0c;Calender.after()和Calender.equals()

使用java.util.Calendar比较两个Date日期

&#64;Test

void testDateCompare3() throws ParseException {

SimpleDateFormat sdf &#61; new SimpleDateFormat("yyyy-MM-dd");

Date date1 &#61; sdf.parse("2009-12-31");

Date date2 &#61; sdf.parse("2019-01-31");

System.out.println("date1 : " &#43; sdf.format(date1));

System.out.println("date2 : " &#43; sdf.format(date2));

Calendar cal1 &#61; Calendar.getInstance();

Calendar cal2 &#61; 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 相等");

}

}

输出结果&#xff1a;

date1 : 2009-12-31

date2 : 2019-01-31

Date1 时间在 Date2 之前

4. Java 8日期比较方法

在Java 8中&#xff0c;可以使用新的isBefore()&#xff0c;isAfter()&#xff0c;isEqual()和compareTo()来比较LocalDate&#xff0c;LocalTime和LocalDateTime。以下示例以比较两个java.time.LocalDate

&#64;Test

void testDateCompare4() throws ParseException {

DateTimeFormatter sdf &#61; DateTimeFormatter.ofPattern("yyyy-MM-dd");

LocalDate date1 &#61; LocalDate.of(2009, 12, 31);

LocalDate date2 &#61; LocalDate.of(2019, 1, 31);

System.out.println("date1 : " &#43; sdf.format(date1));

System.out.println("date2 : " &#43; 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 之前

欢迎关注我的博客&#xff0c;里面有很多精品合集

本文转载注明出处(必须带连接&#xff0c;不能只转文字)&#xff1a;字母哥博客。

觉得对您有帮助的话&#xff0c;帮我点赞、分享&#xff01;您的支持是我不竭的创作动力&#xff01; 。另外&#xff0c;笔者最近一段时间输出了如下的精品内容&#xff0c;期待您的关注。



推荐阅读
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 本文探讨了如何优化时间格式查询,特别是针对 `yyyyMM` 和 `yyyyMMdd` 类型的时间格式,提出了有效的方法来检索上一个月的数据。通过使用 `SimpleDateFormat` 和 `Calendar` 类,我们实现了一个高效的函数,该函数接收一个字符串参数(如 `yyyy-MM`),并返回上一个月的对应日期。此方法不仅提高了查询效率,还增强了代码的可读性和可维护性。 ... [详细]
  • 如何使用 `org.opencb.opencga.core.results.VariantQueryResult.getSource()` 方法及其代码示例详解 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 在Java基础中,私有静态内部类是一种常见的设计模式,主要用于防止外部类的直接调用或实例化。这种内部类仅服务于其所属的外部类,确保了代码的封装性和安全性。通过分析JDK源码,我们可以发现许多常用类中都包含了私有静态内部类,这些内部类虽然功能强大,但其复杂性往往让人感到困惑。本文将深入探讨私有静态内部类的作用、实现方式及其在实际开发中的应用,帮助读者更好地理解和使用这一重要的编程技巧。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • 本文探讨了 Java 中 Pair 类的历史与现状。虽然 Java 标准库中没有内置的 Pair 类,但社区和第三方库提供了多种实现方式,如 Apache Commons 的 Pair 类和 JavaFX 的 javafx.util.Pair 类。这些实现为需要处理成对数据的开发者提供了便利。此外,文章还讨论了为何标准库未包含 Pair 类的原因,以及在现代 Java 开发中使用 Pair 类的最佳实践。 ... [详细]
  • 本文详细探讨了MySQL数据库实例化参数的优化方法及其在实例查询中的应用。通过具体的源代码示例,介绍了如何高效地配置和查询MySQL实例,为开发者提供了有价值的参考和实践指导。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
author-avatar
临别一眼_200910
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有