java中出生日期的日期比较

时间:2013-02-26 13:36:32

标签: java date

我的String格式的日期为String dob="02/26/2013";,格式为“mm / dd / yyy”。它是一个出生日期,我想检查这个dob应该比今天的日期少。怎么检查?

这是我的代码:

    Calendar cal = Calendar.getInstance();
    Date date = cal.getTime();
    SimpleDateFormat format1 = new SimpleDateFormat("MM-dd-yyyy");
    String date1 = format1.format(date);
    System.out.println(date1);
    String date2 = "2013/02/26";
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/mm/dd");
    Date convertedDate = dateFormat.parse(date2);
    System.out.println(convertedDate);

convertedDate正在打印为Sat Jan 26 00:02:00 IST 2013

5 个答案:

答案 0 :(得分:1)

   SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");

        Calendar cal = Calendar.getInstance();
        String strDate = sdf.format(cal.getTime());

        Date date1 = sdf.parse("02/26/2013");
        Date date2 = sdf.parse(strDate);

     if(date1.compareTo(date2)>0){
            System.out.println("Date1 is after Date2");
        }else if(date1.compareTo(date2)<0){
            System.out.println("Date1 is before Date2");
        }else if(date1.compareTo(date2)==0){
            System.out.println("Date1 is equal to Date2");
        }

答案 1 :(得分:1)

    String dob="02/27/2013";
    Date today = new Date();

    try {
        Date dobDate = new SimpleDateFormat("MM/dd/yyyy").parse(dob);

        if (dobDate.compareTo(today) <= 0) {
            //before or equals today
            System.out.println("before");
        }
    } catch (ParseException e) {
        //handle exception
    }

答案 2 :(得分:1)

new SimpleDateFormat("yyyy/mm/dd");错了。 mm是分钟,这就是为什么你在1月26日午夜后2分钟的原因。将mm更改为MM

答案 3 :(得分:0)

您可以查看Joda时间,您也可以尝试将String转换为Calendar对象并根据需要使用before或after方法。有关更多帮助,请阅读DateFormat的Javadoc和Calendar课程。

答案 4 :(得分:-2)

你可以试试这个

String yourdate = "02/26/2013";
Date toDate = new SimpleDateFormat("MM/dd/yyyy").parse(yourdate);
long toDateAsTimestamp = toDate.getTime();
long currentTimestamp = System.currentTimeMillis();
long getRidOfTime = 1000 * 60 * 60 * 24;
long toDateAsTimestampWithoutTime = toDateAsTimestamp / getRidOfTime;
long currentTimestampWithoutTime = currentTimestamp / getRidOfTime;

if (toDateAsTimestampWithoutTime <= currentTimestampWithoutTime) {
    System.out.println("Display error.");
} else {
    System.out.println("All ok");
}