比较String格式的两个日期的最简单方法是什么?我需要知道bytes()
之前/之后是date1
。
date2
答案 0 :(得分:10)
对于更通用的方法,您可以将它们转换为定义格式的Date
个对象,然后使用适当的方法:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = format.parse(date1);
Date date2 = format.parse(date2);
if (date1.compareTo(date2) <= 0) {
System.out.println("earlier");
}
答案 1 :(得分:5)
在这种情况下,您只需比较字符串date1.compareTo(date2)
即可。
编辑:但是,正确的方法是使用SimpleDateFormat
:
DateFormat f = new SimpleDateFormat("yyyy-mm-dd");
Date d1 = f.parse(date1, new ParsePosition(0));
Date d2 = f.parse(date2, new ParsePosition(0));
然后比较日期:
d1.compareTo(d2);
如果d1
在d2
之前,则比较将返回负值;如果在d1
之后d2
,则比较将返回正值。
答案 2 :(得分:4)
使用JodaTime,只需:
DateTime d1 = DateTime.parse(date1);
DateTime d2 = DateTime.parse(date2);
Assert.assertTrue(d1.isBefore(d2));
Assert.assertTrue(d2.isAfter(d1));
答案 3 :(得分:3)
我建议你将它们转换为Date
个对象。
String date1 = "2015-12-01";
String date2 = "2015-12-31";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.parse(date1).before(sdf.parse(date2)));
将它们比作:
if(date2 .compareTo(date1) > 0){
System.out.println(" ---- ");
}
不是一个理想的选项(date1和date2是字符串),因为它失去了灵活性,可能导致自己的问题。
答案 4 :(得分:1)
您只需将字符串转换为日期:
if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
然后比较完成如下: 如果(date1.after(DATE2)){ System.out.println(“Date1在Date2之后”); }
ParseException
如果我没记错,可以使用GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
来处理
答案 5 :(得分:0)
是的,您可以按如下方式对此进行比较:
Date date1 = new Date();
Date date2 = new Date();
if(date1.before(date2)){
// statement
}
if(date1.after(date2)){
// statement
}