java日期越往后越大吗_如何在Java中检查日期是否大于另一个日期?

本问题已经有最佳答案,请猛点这里访问。

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

> java report startDate endDate

例:

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

在代码中,我将日期保存在两个字符串中。 我必须确保用户输入的开始日期应该早于结束日期。

是否有内置函数可以通过将这两个字符串传递给它来帮助我实现这一目标?

将String转换为java.util.Date。 日期实现可比。

更新:java.time类取代了麻烦的旧式传统日期时间类,例如Date和Calendar。

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

从这里拍摄:

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

}

}

使用SimpleDateFormat解析两个日期firstDate和secondDate。

firstDate.after(secondDate);

firstDate.before(secondDate);

将字符串解析为日期,然后使用compareTo,before或之后进行比较

Date d = new Date();

d.compareTo(anotherDate)

Date date1 = new SimpleDateFormat("MM/dd/yyyy").parse(date1string)

Date date2 = new SimpleDateFormat("MM/dd/yyyy").parse(date2string)

date1.compareTo(date2);

用于compareTo的javadoc

http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#compareTo(java.util.Date)

返回the value 0 if the argument Date is equal to this Date; a value less than 0 if this Date is before the Date argument; and a value greater than 0 if this Date is after the Date argument.和NullPointerException - if anotherDate is null.

您需要使用SimpleDateFormat(格式为dd-MM-yyyy)将2个输入字符串解析为Date对象,然后使用Date#before(otherDate)(或)Date#after(otherDate)进行比较。

尝试自己实现代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值