比较Java中的日期 [英] Comparing dates in Java

查看:177
本文介绍了比较Java中的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经阅读日期函数,但我不能想出一个最好的方式来解决我的问题。



我有几个日期从数据库 String ,我想将它与当前日期进行比较。我使用 compareTo ,但是有一个问题使用这个函数我猜是因为我比较字符串。



这是我的函数:

  public int dateCompare(String today,String date2){
return today。 compareTo(date2);
}

当我在示例日期中使用它时:

  dateCompare(04/19/2013​​,04/18/2013​​); 

它返回1,当我将第一个参数的值更改为 04/20/2013仍会返回1。



请帮助...

Date 对象。你应该使用它。

  import java.util.Calendar; 
import java.util.Date;

public class CompareDates {

public static void main(String [] args){
//创建日历,默认为今天
Calendar cal = Calendar.getInstance();
//减去1天
cal.add(Calendar.DATE,-1);
//比较结果(1)
System.out.println(dateCompare(new Date(),cal.getTime()));
//添加2天
cal.add(Calendar.DATE,2);
//比较结果(-1)
System.out.println(dateCompare(new Date(),cal.getTime()));
}

public static int dateCompare(date today,Date date2){
System.out.println(Compare+ today +with+ date2);
return today.compareTo(date2);
}
}

您也可以使用 Date API并在之前使用和在 ...

之后使用

 现在的日期= new Date(); 

日历cal = Calendar.getInstance();
cal.add(Calendar.DATE,-1);
System.out.println(now +isBefore+ cal.getTime()+=+ now.before(cal.getTime()));
System.out.println(now +isAfter+ cal.getTime()+=+ now.after(cal.getTime()));
cal.add(Calendar.DATE,2);
System.out.println(now +isBefore+ cal.getTime()+=+ now.before(cal.getTime()));
System.out.println(now +isAfter+ cal.getTime()+=+ now.after(cal.getTime()));


I already read date functions but i cant think a best way to solve my problem.

I have a couple of dates from database which is String and i want to compare it to may current date. I am using the compareTo, but there is a problem using this function i guess it is because of i was comparing strings.

This is my function:

public int dateCompare(String today, String date2){
    return today.compareTo(date2);
}

And when i use it in sample dates:

dateCompare("04/19/2013","04/18/2013");

it returns 1, and when i change the value of first parameter to "04/20/2013" it still returns 1.

Please HELP...

解决方案

Java has a Date object. You should be using that instead.

import java.util.Calendar;
import java.util.Date;

public class CompareDates {

    public static void main(String[] args) {
        // Create a calendar, this will default to today
        Calendar cal = Calendar.getInstance();
        // Subtract 1 day
        cal.add(Calendar.DATE, -1);
        // Compare the result (1)
        System.out.println(dateCompare(new Date(), cal.getTime()));
        // Add 2 days
        cal.add(Calendar.DATE, 2);
        // Compare the result (-1)
        System.out.println(dateCompare(new Date(), cal.getTime()));            
    }

    public static int dateCompare(Date today, Date date2) {
        System.out.println("Compare " + today + " with " + date2);
        return today.compareTo(date2);
    }
}

You could also just make use of the Date API and use before and after...

Date now = new Date();

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(now + " isBefore " + cal.getTime() + " = " + now.before(cal.getTime()));
System.out.println(now + " isAfter " + cal.getTime() + " = " + now.after(cal.getTime()));
cal.add(Calendar.DATE, 2);
System.out.println(now + " isBefore " + cal.getTime() + " = " + now.before(cal.getTime()));
System.out.println(now + " isAfter " + cal.getTime() + " = " + now.after(cal.getTime()));

这篇关于比较Java中的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆