比较Java中的日期 [英] Comparing dates in 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。
请帮助...
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屋!