我的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
答案 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");
}