我创建了一个日期,然后格式是这样的:
示例1:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy");
String currentDate = sdf.format(new Date());
我想做的是检查此日期是否在另一个日期之前(也以相同的方式格式化)。我该怎么做呢?
示例2:
另外,我如何检查其中一个是否在另一个之前:
long setForLong = System.currentTimeMillis() + (totalTime*1000);
String display = (String) DateFormat.format("HH:mm:ss dd/MM/yyyy", setForLong);
编辑:
我认为需要更多细节。我以两种不同的方式为两种不同的用途创建日期。第一次使用只是将当前日期格式化为字符串,因此对用户来说是可读的。在第二种情况下,我将System.currentTimeMillis
使用日期并添加long
。两者都会产生一个字符串。
两种方法都以完全相同的方式格式化日期,我将字符串设置为TextView
。后来,我需要比较这些日期。我没有原始数据/日期/等,只有这些字符串。因为它们的格式是相同的,我可以很容易地比较它们。
我尝试了if(String1.compareTo(String2) >0 )
方法,但如果更改日期则不起作用。
答案 0 :(得分:1)
您应该使用Calendar
来方便比较日期。
Calendar c1 = Calendar.getInstance();
c1.setTime(Date someDate);
Calendar c2 = Calendar.getInstance();
c2.setTime(Date anotherDate);
if(c1.before(c2)){
// do something
}
您可以随时对其进行格式化
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy");
String currentDate = sdf.format(c1.getTime());
答案 1 :(得分:1)
如果您只有两个String
个可用日期的对象。您需要在自己的比较器类或其他对象中处理它们。在这种情况下,由于这些已经格式化为日期,您可以创建Date
个对象并使用之前发布的方法进行比较。像这样:
String string = "05:30:33 15/02/1985";
Date date1 = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy", Locale.ENGLISH).parse(string);
String string2 = "15:30:33 01/02/1985";
Date date2 = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy", Locale.ENGLISH).parse(string2);
if(date1.getTime()>date2.getTime()) {
//date1 greater than date2
}
else if(date1.getTime()<date2.getTime()) {
//date1 less than date2
}
else {
//date1 equal to date2
}