日期由用户使用年,月,日下拉选择。我必须将用户输入的日期与今天的日期进行比较。基本上看看他们是否是同一日期。例如 用户于02/16/2012输入。如果今天是2012年2月16日,那么我必须显示一条消息。我该怎么做? 我试过使用毫秒,但发出错误的结果。使用java比较相同日期
0
A
回答
0
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2012-05-17");
Date date2 = sdf.parse("2012-01-01");
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
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");
}
或
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
0
什么样的对象是你找回?字符串,日历,日期?您可以获取该字符串并进行比较,至少您认为在订购YYYY MM DD /// DD MM YYY时遇到问题,我建议根据您的规格YYYYMMDD创建一个自定义字符串,然后比较它们。
Date d1 = new Date();
Date d2 = new Date();
String day1 = d1.getYear()+"/"+d1.getMonth()+"/"+d1.getDate();
String day2 = d2.getYear()+"/"+d2.getMonth()+"/"+d2.getDate();
if(day1.equals(day2)){
System.out.println("Same day");
}
0
java中的日期时间紧迫,分辨率为“毫秒”。要有效比较两个日期,您需要先将这两个日期设置为“同一时间”,以小时,分钟,秒和毫秒为单位。 java.util.Date
中的所有“setTime”方法都被拒绝,因为它们在国际化和本地化问题上无法正确运行。
“修理”这个,一类新引入GregorianCalendar
GregorianCalendar cal1 = new GregorianCalendar(2012, 11, 17);
GregorianCalendar cal2 = new GregorianCalendar(2012, 11, 17);
return cal1.equals(cal2); // will return true
是GregorianCalendar的工作在一年,一个月是关系到小时,分钟,秒和初始化毫秒为零的原因,一天的构造函数。您可以尝试通过使用弃用方法来尝试使用java.util.Date
来近似此类方法,如setHours(0)
;但是,最终由于缺少setMillis(0)
而失败。这意味着要使用Date
格式,您需要获取毫秒并执行一些整数运算来将毫秒设置为零。
date1.setHours(0);
date1.setMinutes(0);
date1.setSeconds(0);
date1.setTime((date1.getTime()/1000L) * 1000L);
date2.setHours(0);
date2.setMinutes(0);
date2.setSeconds(0);
date2.setTime((date2.getTime()/1000L) * 1000L);
return date1.equals(date2); // now should do a calendar date only match
相信我,只要使用日历/ GregorianCalendar的类,它的前进之路(直到Java的采用一些更复杂的,像乔达时间。
0
有你能做到双向的。第一个是在相同的日期格式格式化两个日期或字符串格式处理日期。
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String date1 = sdf.format(selectedDate);
String date2 = sdf.format(compareDate);
if(date1.equals(date2)){
}else{
}
或者
Calendar toDate = Calendar.getInstance();
Calendar nowDate = Calendar.getInstance();
toDate.set(<set-year>,<set-month>,<set-date->);
if(!toDate.before(nowDate))
//display your report
else
// don't display the report
0
以上答案是正确的,但可以考虑使用JodaTime - 它更简单直观的API。 您可以使用with*
方法设置DateTime
并对它们进行比较。
看看这个answer
相关问题
- 1. java - 如何比较相同的日期
- 2. 日期比较相同的日期
- 3. Java比较日期
- 4. 与日期相比较?
- 5. 与日期相比较Javascript?
- 6. 如何使用比较运算符比较Java中的日期?
- 7. 在Java中比较日期
- 8. 使用XSLT比较日期
- 9. 日期比较使用LINQ
- 10. 比较日期使用GregorianCalendar
- 11. 使用日历类使用java比较日期
- 12. Java比较两个日期年,月,日
- 13. 日期比较
- 14. 日期比较
- 15. 比较日期
- 16. 日期比较
- 17. 比较日期
- 18. 日期比较
- 19. 日期比较
- 20. 比较日期
- 21. 比较日期
- 22. 日期比较
- 23. 日期比较
- 24. 使用XSLT比较日期期间
- 25. JavaScript日期比较
- 26. Rails比较日期
- 27. 比较的日期
- 28. PowerShell:比较日期
- 29. php日期比较
- 30. c#,比较日期
那么Date.equals方法呢? –
几乎所有以前的问题都有正确的答案,您应该接受它们:)对于这一个,我们确实需要查看您用于将字符串转换为日期的代码。 – Affe