Bonjour,
Je récupère la date sytème avec ses heures, minutes, secondes :
Date datesysteme = new Date();
Comment la réduire à la date du jour à 00:00:00 ?
Merci de votre aide
Bonjour,
Je récupère la date sytème avec ses heures, minutes, secondes :
Date datesysteme = new Date();
Comment la réduire à la date du jour à 00:00:00 ?
Merci de votre aide
A part la mise à zéro "manuelle", je ne vois pas...
Ceci dit, je me demande pourquoi tu veux remettre l'heure à zéro... Qui peut le plus peut le moins, si tu n'as pas besoin de l'heure ça ne te coûtera pas plus de la fournir quand même puisqu'elle est de toute façon comprise dans l'objet Date, voire ça te coûtera moins de traitement puisque tu économises la "mise à zéro" de l'heure Enfin, c'est toi qui sais ce que tu veux faire dans ton appli
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 datesysteme.setHours(0); datesysteme.setMinutes(0); datesysteme.setSeconds(0);
Je prends peut être le problème à l'envers !
J'ai la date de création d'un fichier X.
Et je veux m'assurer que ce fichier n'est pas du jour.
Je pensais donc déterminé la date système à 00:00:00 pour tester les deux dates.
Je suis preneur de toutes solutions pouvant atteindre ce résultat.
Merci
Astartee ton code réalise parfaitement ce que je veux. Merci.
Seule remarque, eclipse me signale "The method setHours(int) from the type date is deprecated". Idem pour setMinutes et setSeconds.
A priori, l'aternative est à chercher de ce coté là : "Create a java.util.GregorianCalendar object and use its setters and getters instead."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 String fichierSurveiller = "c:\\rapport.txt"; File fichierSurveiller0 = new File( fichierSurveiller ); if (fichierSurveiller0.exists()) { long dateFichierSurveiller = fichierSurveiller0.lastModified(); // date fichier à surveiller (epoch) Date datesysteme = new Date(); datesysteme.setHours(0); datesysteme.setMinutes(0); datesysteme.setSeconds(0); long datesysteme0 = datesysteme.getTime(); // date système (epoch) long ecart = datesysteme0 - dateFichierSurveiller; // ecart en millisecondes if (ecart> 0) { System.out.println(ecart + " : Date du Fichier surveiller antérieur à la date du jour"); } else { System.out.println(ecart + " : Date du Fichier surveiller postérieur à la date du jour"); } }
oui, tu utilise GregorianCalendar, car les méthodes de Date ne gèrent que la Locale "système", ce qui la rend imprécise.
Pour le traitement des date, l'api jodatime est aussi assez courrement suggérée sur ce forum, pour sa simplicité.
Si tu veux utiliser les fonctions de comparaison de la classe Date, alors comme la comparaison prend en compte l'heure (et les minutes et les secondes...) tu as effectivement raison de vouloir mettre l'heure à zéro.
Ah tiens ? Eclipse ne m'a rien dit à moi
Dans ce cas, oui, va voir du côté du Calendar, ce n'est pas beaucoup plus compliqué, et il faudra encore mettre l'heure à zéro "à la main".
J'arrive bien a mettre 0 mais, pour le moment, je bloque sur la conversion en epoch !
Code : Sélectionner tout - Visualiser dans une fenêtre à part calendar.getTimeInMillis()
un grand merci à vous deux.
PS : j'ai un autre cas sans aucune piste, si vous en avez une, n'hésitez pas à me la fournir. MERCI MERCI http://www.developpez.net/forums/d65...e/#post3832358
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 String fichierSurveiller = "c:\\rapport.txt"; File fichierSurveiller0 = new File( fichierSurveiller ); if (fichierSurveiller0.exists()) { long dateFichierSurveiller = fichierSurveiller0.lastModified(); // date fichier à surveiller (epoch) GregorianCalendar datesysteme = new java.util.GregorianCalendar(); // Remplace Date datesysteme = new Date(); datesysteme.set(GregorianCalendar.HOUR,0); // Remplace datesysteme.setHours(0); datesysteme.set(GregorianCalendar.MINUTE,0); // Remplace datesysteme.setMinutes(0); datesysteme.set(GregorianCalendar.SECOND,0); // Remplace datesysteme.setSeconds(0); datesysteme.set(GregorianCalendar.MILLISECOND,0); // Ajout long datesysteme0 = datesysteme.getTimeInMillis(); // Remplace long datesysteme0 = datesysteme.getTime(); // date système (epoch) long ecart = datesysteme0 - dateFichierSurveiller; // ecart en millisecondes if (ecart> 0) { System.out.println(ecart + " : Date du Fichier surveiller antérieur à la date du jour"); } else { System.out.println(ecart + " : Date du Fichier surveiller postérieur à la date du jour"); } }
Si vous voulez que cela fonctionne l'après midi, ajouter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ds.set(GregorianCalendar.AM_PM,0); // Ajout
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager