java - 如何检查Java中的日期是否大于另一个日期?

标签 java date

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

> java 报告 startDate endDate

示例:

java 报告 01-01-2013 31-03-2013

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

最佳答案

您可以使用 Date.before()Date.after()Date.equals()用于日期比较。

取自 here :

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();
    }
}

关于java - 如何检查Java中的日期是否大于另一个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19109960/

相关文章:

Java:将一个对象扩展到另一个对象

java - 数组中玩家的位置

java - Java 可以阻止开放 TCP 端口吗?

python - 按组检查一个数据框中的日期是否位于另一个数据框中的两个日期之间

javascript - 在 "Fri May 10 2019 00:00:00 GMT+0800"中添加一天,并使用 JavaScript 以相同的格式获得最终答案

java - 使用 entityManager.persist(Object) 插入 ... 值;

java - 在Java中,如何创建一个仅对类和子类可见,而对包中的其他类不可见的变量?

c# Asp.net 获取在 javascript 中设置的 Cookie 过期时间总是返回 01.01.0001

excel - 动态更改下拉列表中一个月的天数

php - MySQL 日期重复