La date est sélectionnée par l'utilisateur en utilisant une liste déroulante pour l'année, le mois et le jour. Je dois comparer la date entrée par l'utilisateur avec la date du jour. Essentiellement voir si elles sont la même date. Par exemple l'utilisateur est entré le 16/02/2012. Et si aujourd'hui est 16/02/2012 alors je dois afficher un message. Comment fait-on ça? J'ai essayé d'utiliser des millisecondes mais cela donne de mauvais résultats.Comparez la même date en utilisant java
Répondre
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");
}
ou
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
Découvrez How to Compare dates
Et quel genre d'objet êtes-vous de retour? Chaîne, Calendrier, Date? Vous pouvez obtenir cette chaîne et la comparer, au moins que vous pensez que vous aurez des problèmes avec l'ordre AAAA MM DD /// JJ MM AAAA dans ce cas, je suggère de créer une chaîne personnalisée basée sur votre spécification YYYYMMDD, puis les comparer.
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");
}
Les dates dans java sont des moments dans le temps, avec une résolution de "à la milliseconde". Pour comparer efficacement deux dates, vous devez d'abord définir les deux dates en "heures", en minutes, en secondes et en millisecondes. Toutes les méthodes "setTime" dans un java.util.Date
sont dépréciées, car elles ne fonctionnent pas correctement pour les problèmes d'internationalisation et de localisation.
« réparer », une nouvelle classe a été introduite GregorianCalendar
GregorianCalendar cal1 = new GregorianCalendar(2012, 11, 17);
GregorianCalendar cal2 = new GregorianCalendar(2012, 11, 17);
return cal1.equals(cal2); // will return true
La raison pour laquelle travaille GregorianCalendar est liée à l'heure, minutes, secondes et millisecondes étant initialisés à zéro dans l'année, le mois, constructeur du jour. Vous pouvez essayer de l'approximer avec java.util.Date
en utilisant déprécié méthodes comme setHours(0)
; cependant, finalement cela échouera en raison d'un manque de setMillis(0)
. Cela signifie que pour utiliser le format Date
, vous devez saisir les millisecondes et effectuer des calculs mathématiques entiers pour définir les millisecondes sur zéro.
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
Faites-moi confiance, il suffit d'utiliser la classe Calendrier/GregorianCalendar, il est la voie à suivre (jusqu'à Java adopte quelque chose de plus sophistiqué, comme le temps de Joda.
Il y a deux façons vous pouvez le faire. Première est forme à la fois la date en même format de date ou gérer la date sous forme de chaîne.
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String date1 = sdf.format(selectedDate);
String date2 = sdf.format(compareDate);
if(date1.equals(date2)){
}else{
}
ou
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
Les réponses ci-dessus sont correctes mais pensez à utiliser JodaTime - son API beaucoup plus simple et intuitive. Vous pouvez définir DateTime
en utilisant les méthodes with*
et les comparer.
Regardez ce answer
- 1. Comparez deux valeurs en utilisant '=?' Dans Java
- 2. PHP: Comparez Date de
- 3. Date comparez dans Pivot
- 4. Comparez deux Timestamp en java
- 5. Comparez la même colonne dans la même table
- 6. Comparez le répertoire en utilisant winmerge?
- 7. Comparez deux tableaux de primitives en Java?
- 8. Obtenez la couleur moyenne d'une image et comparez la couleur des images en utilisant java
- 9. AS3 Date non sérialisable en Java Date en utilisant BlazeDS
- 10. Comparez deux dates en php
- 11. Comparez deux chaînes hexadécimales dans Java?
- 12. Comparez time1, time2 en php
- 13. « Date --date = ... » unix en Java
- 14. Java date question en utilisant oracle10g
- 15. Conversion de code Java en Cpp: comparez à
- 16. Java date convertir la chaîne en date
- 17. négatif Java Entiers MIN_VALUE puis comparez
- 18. En utilisant la fonction date() j'ai toujours la même date, pourquoi?
- 19. En java comparez 2 objets de type JSObject en utilisant l'opérateur javascript '==='
- 20. Doute de recevoir la date d'hier en utilisant java
- 21. Requête utilisant la plage de date dans MongoDB en Java
- 22. Comparez la date du voyage avec la date de retour dans asp.net C#
- 23. Comparez deux images en JavaScript
- 24. analyse la date et l'heure en java
- 25. Comment comparez-vous la date de dernière modification au fichier Date de dernière modification?
- 26. Convertir la date en chaîne en Java?
- 27. comparez la propriété value
- 28. Comparez les dates en utilisant l'objectif de cacao c
- 29. zend framework 2 - comparez 2 entrées en utilisant un validateur?
- 30. comment convertir la date en java
Qu'en est-il de la méthode Date.equals? –
presque toutes vos questions précédentes ont des réponses correctes, vous devriez les accepter :) Pour celui-ci, nous avons vraiment besoin de voir le code que vous utilisez pour convertir la chaîne en une date à partir de laquelle commencer. – Affe