日期由用戶使用年,月,日下拉選擇。我必須將用戶輸入的日期與今天的日期進行比較。基本上看看他們是否是同一日期。例如 用戶於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. 與日期相比較?
- 7. 如何使用比較運算符比較Java中的日期?
- 8. 在Java中比較日期
- 9. 日期對象比較 - Java
- 10. Java和SQL比較日期
- 11. 比較同一日期中的日期
- 12. 比較日期使用JavaScript
- 13. 比較日期使用GregorianCalendar
- 14. 日期比較使用LINQ
- 15. 使用XSLT比較日期
- 16. 使用日曆類使用java比較日期
- 17. 比較不適用於java的日期
- 18. Java比較兩個日期年,月,日
- 19. 比較日期
- 20. 日期比較
- 21. 比較日期
- 22. 日期比較
- 23. 日期比較
- 24. 日期比較
- 25. 日期比較
- 26. 比較日期
- 27. 比較日期
- 28. 日期比較
- 29. 日期比較
- 30. 比較日期
那麼Date.equals方法呢? –
幾乎所有以前的問題都有正確的答案,您應該接受它們:)對於這一個,我們確實需要查看您用於將字符串轉換爲日期的代碼。 – Affe