Java中如何检查一个日期是否大于另一个日期? [复制]

2024-02-07

我正在开发一个 Java 应用程序,它生成用户在命令行中输入的持续时间的报告。用户需要按以下格式输入日期:dd-MM-yyyy

> java report startDate endDate

Example:

java报告 2013年1月1日 2013年3月31日

在代码中,我将日期保存在两个字符串中。我必须确保用户输入的开始日期应该早于结束日期。 是否有一个内置函数可以通过将这两个字符串传递给它来帮助我实现此目的?


您可以使用日期.before() http://docs.oracle.com/javase/8/docs/api/java/util/Date.html#before-java.util.Date- or 日期.after() http://docs.oracle.com/javase/8/docs/api/java/util/Date.html#after-java.util.Date- or 日期.equals() http://docs.oracle.com/javase/8/docs/api/java/util/Date.html#after-java.util.Date-用于日期比较。

取自here http://www.mkyong.com/java/how-to-compare-dates-in-java/:

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

public class DateDiff {

    public static void main( String[] args )
    {
        compareDates("2017-01-13 00:00:00", "2017-01-14 00:00:00");// output will be Date1 is before Date2
        compareDates("2017-01-13 00:00:00", "2017-01-12 00:00:00");//output will be Date1 is after Date2
        compareDates("2017-01-13 00:00:00", "2017-01-13 10:20:30");//output will be Date1 is before Date2 because date2 is ahead of date 1 by 10:20:30 hours
        compareDates("2017-01-13 00:00:00", "2017-01-13 00:00:00");//output will be Date1 is equal Date2 because both date and time are equal
    }

    public static void compareDates(String d1,String d2)
    {
        try{
            // If you already have date objects then skip 1

            //1
            // Create 2 dates starts
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date1 = sdf.parse(d1);
            Date date2 = sdf.parse(d2);

            System.out.println("Date1"+sdf.format(date1));
            System.out.println("Date2"+sdf.format(date2));System.out.println();

            // Create 2 dates ends
            //1

            // Date object is having 3 methods namely after,before and equals for comparing
            // after() will return true if and only if date1 is after date 2
            if(date1.after(date2)){
                System.out.println("Date1 is after Date2");
            }
            // before() will return true if and only if date1 is before date2
            if(date1.before(date2)){
                System.out.println("Date1 is before Date2");
            }

            //equals() returns true if both the dates are equal
            if(date1.equals(date2)){
                System.out.println("Date1 is equal Date2");
            }

            System.out.println();
        }
        catch(ParseException ex){
            ex.printStackTrace();
        }
    }

    public static void compareDates(Date date1,Date date2)
    {
        // if you already have date objects then skip 1
        //1

        //1

        //date object is having 3 methods namely after,before and equals for comparing
        //after() will return true if and only if date1 is after date 2
        if(date1.after(date2)){
            System.out.println("Date1 is after Date2");
        }

        //before() will return true if and only if date1 is before date2
        if(date1.before(date2)){
            System.out.println("Date1 is before Date2");
        }

        //equals() returns true if both the dates are equal
        if(date1.equals(date2)){
            System.out.println("Date1 is equal Date2");
        }

        System.out.println();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中如何检查一个日期是否大于另一个日期? [复制] 的相关文章

随机推荐

  • oauth 中不支持的响应类型[重复]

    这个问题在这里已经有答案了 您好 我正在 Angular 2 中开发 Web 应用程序 我在 webapi 中有 oauth 身份验证 我在前端使用 Angular 2 登录时我调用下面的代码 private login this oaut
  • << 具有多个参数的运算符[重复]

    这个问题在这里已经有答案了 我只是想知道我们是否可以为运算符 举个例子会更明确 anyType operator lt lt arg p1 arg p2 DoSomethingWith p1 DoSomethingWith p2 retur
  • OpenCV Python 错误断言失败(scn == 3 || scn == 4)

    我刚刚开始玩OpenCV在 Python 中 我遇到了断言错误 我从a复制了以下代码tutorial http docs opencv org trunk doc py tutorials py gui py video display p
  • MySQL 中“FOR XML AUTO”的等效项是什么? (用于具有代表行的 XML 字符串)

    在 SQL Server 中 我经常使用 FOR XML AUTO 它允许 SELECT id FROM car FOR XML AUTO 返回 12 MySQL 有没有办法做到这一点 我想要的是能够将此 XML 存储在另一个表中 这样我就
  • 将 Z 轴与向量对齐的最简单方法是什么?

    给定一个点 如 0 0 0 和一个向量 如 x y z 对齐以 0 0 0 为中心的负 Z 轴以指向该向量的方向的最简单方法是什么 使用 OpenGL 的示例将受到欢迎 但不是必需的 有很多不同的方法可以旋转坐标系以指向给定方向 它们都会使
  • 什么时候应该在 C++ 中使用引用?

    我已经编写 C 有一段时间了 我开始怀疑这个规则尽可能使用参考文献应该到处应用 Unlike 这个相关的SO帖子 https stackoverflow com questions 7058339 c when to use referen
  • -[NSConcreteMutableData base64EncodedStringWithOptions:]:无法识别的选择器发送到实例 0x776e920'

    我的应用程序不断崩溃并显示以下消息 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 NSConcreteMutableData base64EncodedStringWithOptions 无法
  • OO PHP 受保护的属性在 foreach 循环中不可用?

    我有一个验证类 我想用它来检查应用程序中的所有值是否在允许的约束范围内 我将一个对象从另一个类 在本例中为 User 传递给验证类中的静态函数 function validate errors Validation validate thi
  • 参数的存在数据库基数

    我是exist db 和XQuery 的新手 在exist db中 我有这个站点地图 目录 registranten 包含目录 data 带有xml文件 和两个文件 regBasic xql 和 regSearch xql 我正在尝试使用脚
  • 如何使用 Silverlight 和 MVVM 设计复合视图和视图模型?

    我想在我的 Silverlight MVVM 应用程序中创建一个 向导 该向导应包含多个步骤 您可以使用 下一个 和 上一个 在这些步骤之间导航 我面临的问题是视图和视图模型之间的关系 我希望向导本身有一个视图和视图模型 我的直觉告诉我 向
  • 由于 WatchKit,Xcode 11 Beta 无法构建?

    在 Xcode 10 上工作 现在在测试版中我无法构建我不断收到此错误 为 iOS 模拟器构建时 WatchKit 不可用 考虑使用 if os iOS 有条件地导入此框架 对于 WatchKit 扩展中的一个 swift 文件 我也遇到了
  • 如何使用 Promise 异步读取多个文件,然后继续

    我对承诺和使用不熟悉rsvp https github com tildeio rsvp js执行 我想异步读取文件列表 然后仅在读取所有文件后才继续执行另一个任务 我已经了解了读取一个文件并链接到下一个任务的基本结构 var loadFi
  • YouTube iframe API:无法使其响应

    我正在尝试通过 iFrame API 实现 Youtube 视频 我需要捕捉一些事件 因此单独嵌入播放器不是一个选择 正如文档中所解释的 一切正常 我这样称呼视频 var tag document createElement script
  • 什么时候应该使用按位运算符?

    我阅读了以下 Stack Overflow 问题 并且了解了按位和逻辑之间的区别 参考 这个符号在 PHP 中意味着什么 https stackoverflow com questions 3737139 reference what do
  • DataSets to POCOs - 有关 DAL 架构的询问

    我必须非常快速地开发一个相当大的 ASP NET MVC 项目 并且我想获得一些关于我的 DAL 设计的意见 以确保不会有任何问题困扰我 因为 BL 可能会变得相当复杂 一些背景知识 我正在使用 Oracle 后端 因此内置的 LINQ t
  • scala并行收集处理的性能

    我遇到过需要一次处理数千条记录的情况 有时 可能有数百条 甚至可能多达 30000 条记录 我正在考虑使用scala的并行集合 为了理解其中的区别 我编写了一个简单的 pgm 如下所示 object Test extends App val
  • 当目标应用程序以管理员身份运行时,ShowWindow 功能不起作用

    我正在编写一个程序来显示 隐藏某些目标应用程序的窗口 我之前测试过它并注意到一些奇怪的事情 如果我以管理员身份运行目标应用程序 右键单击 gt 属性 兼容性 选项卡 以管理员身份运行此程序 它不起作用 为了演示 我编写了一个名为 Targe
  • Bundle install 将 gems 安装在 ./mysql2 文件夹中

    我最近在我的机器上升级了mysql 因此 我正在尝试相应地更新我的 mysql2 gem 在此过程中 我运行 bundle install 由于某种原因 我的 Gemfile 中的所有 gem 都安装在 mysql2 目录中 ruby 1
  • 如何在 Ruby 中计算标准差?

    我有几条具有给定属性的记录 我想找到标准差 我怎么做 module Enumerable def sum self inject 0 accum i accum i end def mean self sum self length to
  • Java中如何检查一个日期是否大于另一个日期? [复制]

    这个问题在这里已经有答案了 我正在开发一个 Java 应用程序 它生成用户在命令行中输入的持续时间的报告 用户需要按以下格式输入日期 dd MM yyyy gt java report startDate endDate Example j