IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Date et heure


Sujet :

Collection et Stream Java

  1. #1
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut Date et heure
    Bonjour à tous les javaxiens !

    Voila j'ai besoin d'un aide au sujet des dates et heure.
    dans mon appli je cree deux dates celles d'aujourd'hui et celle de demain
    et je possede un fichier log qui est généré par l'appli.
    Seulement pour eviter que mon fichier log fasse 3Giga je voudrais que
    chaque jour a midi (12h) le fichier log soit effacé pui recrée.
    Comment m'y prendres.
    Merci d'avance .

  2. #2
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Bonjour,
    Plutôt que de réinventer la roue, je peux te conseiller de regarder du côté de log4j, il y a exactement ce que tu veux.

    Voici un lien http://beuss.developpez.com/tutoriel...jakarta/log4j/

    La partie qui t'intéresse concerne les RollingFileAppender.

    Bonne chance

  3. #3
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    Merci pour ta reponse jvais voir ca

  4. #4
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    juste pour info
    pour les dates quand on fais getTime() ca nous rends du long non?
    si c'est du long l'unite du temps est en milliseconde ou pas ?

  5. #5
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Oui, le getTime te renvoie un long qui correspond aux milisecondes écoulées depuis le 1 janvier 1970, 00:00:00 GMT.

  6. #6
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    ko jte remerci pour linfo

  7. #7
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    comment je fais si jeux veut afficher la date de demain a 12h

  8. #8
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Essai un truc comme ça (il y a une manip à faire sur le jour je pense, mais là va falloir que tu cherches un peu quand même)

    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
    22
    23
    24
    25
    26
    27
    28
    29
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
     
    /**
     * @author QS00196
     * 
     * TODO To change the template for this generated type comment go to Window -
     * Preferences - Java - Code Style - Code Templates
     */
    public class TestDate {
     
    	public static void main(String[] args) {
    		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
    		Date date = new Date();
     
    		System.err.println("AUJOURD'HUI = " + dateFormat.format(date));
     
    		Calendar calendar = new GregorianCalendar();
    		calendar.setTime(date);
    		calendar.add(Calendar.DAY_OF_YEAR, 1);
    		calendar.set(Calendar.HOUR, 12);
    		calendar.set(Calendar.MINUTE, 0);
    		calendar.set(Calendar.SECOND, 0);
    		calendar.set(Calendar.MILLISECOND, 0);
    		System.err.println("DEMAIN = " + dateFormat.format(calendar.getTime()));
     
    	}
    }

  9. #9
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    merci t'es super man

  10. #10
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    Citation Envoyé par vincent63 Voir le message
    Essai un truc comme ça (il y a une manip à faire sur le jour je pense, mais là va falloir que tu cherches un peu quand même)

    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
    22
    23
    24
    25
    26
    27
    28
    29
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
     
    /**
     * @author QS00196
     * 
     * TODO To change the template for this generated type comment go to Window -
     * Preferences - Java - Code Style - Code Templates
     */
    public class TestDate {
     
    	public static void main(String[] args) {
    		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
    		Date date = new Date();
     
    		System.err.println("AUJOURD'HUI = " + dateFormat.format(date));
     
    		Calendar calendar = new GregorianCalendar();
    		calendar.setTime(date);
    		calendar.add(Calendar.DAY_OF_YEAR, 1);
    		calendar.set(Calendar.HOUR, 12);
    		calendar.set(Calendar.MINUTE, 0);
    		calendar.set(Calendar.SECOND, 0);
    		calendar.set(Calendar.MILLISECOND, 0);
    		System.err.println("DEMAIN = " + dateFormat.format(calendar.getTime()));
     
    	}
    }
    alors sachant que les jour commence a zero j'ai remplacé ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.add(Calendar.DAY_OF_YEAR, 1);
    par ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.add(Calendar.DAY_OF_YEAR, 0);
    sinon j'ai bien le jour d'apres mais pas a midi
    jvais chercher de mon cote mais si vous savez pourquoi j'ai pas l'heure a midi
    ben c'est toujours bon a savoir
    merci

  11. #11
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    est ce qu'il faudrait renseigner le moi , l'année etc ... ?

  12. #12
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    personne ne sait ? bon je patiente encore ...

  13. #13
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Faut-il renseigner le mois et l'année
    Désolé, hier am je n'étais pas trop disponible.
    Voilà l'explication du bout de code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
    		Date date = new Date();
     
    		System.err.println("AUJOURD'HUI = " + dateFormat.format(date));
     
    		Calendar calendar = new GregorianCalendar();
    		calendar.setTime(date);
    		calendar.add(Calendar.DAY_OF_YEAR, 1);
    		calendar.set(Calendar.HOUR, 12);
    		calendar.set(Calendar.MINUTE, 0);
    		calendar.set(Calendar.SECOND, 0);
    		calendar.set(Calendar.MILLISECOND, 0);
    		System.err.println("DEMAIN = " + dateFormat.format(calendar.getTime()));
    Le new Date() crée un object date avec la date du jour (attention au TimeZone) donc avec le mois, l'année, le jour, l'heure, les minutes, les secondes et les millisecondes...
    Ensuite, on crée un object calendar pour pouvoir facilement faire des manipulations sur la date que l'on vient de créer.
    On incrémente le jour de l'année pour avoir le jour suivant (euh... bon d'accord c'était pas nécessaire comme phrase )
    On initialise l'heure à 12 car c'est celle qu'il te faut.
    L'initialisation des minutes et secondes et millisecondes est aussi évidente.

  14. #14
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    jsuis daccord javais compris mais merci quand meme pour l'explication !
    sinon voila le probleme c'est l'heure n'est pas a midi quand je laffiche mais a l'heure courante

  15. #15
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    mais la logique est bonne mais manque-t-il quelque chose ?

  16. #16
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Citation Envoyé par haco28 Voir le message
    alors sachant que les jour commence a zero j'ai remplacé ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.add(Calendar.DAY_OF_YEAR, 1);
    par ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.add(Calendar.DAY_OF_YEAR, 0);
    sinon j'ai bien le jour d'apres mais pas a midi
    jvais chercher de mon cote mais si vous savez pourquoi j'ai pas l'heure a midi
    ben c'est toujours bon a savoir
    merci
    Alors, en fait, pour répondre à ton poste, il faut bien mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.add(Calendar.DAY_OF_YEAR, 1);
    Si tu obtiens des résultats curieux, c'est parce qu'il y avait une erreur dans mon exemple, il faut remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.set(Calendar.HOUR, 12);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.set(Calendar.HOUR_OF_DAY, 12);
    En effet, j'ai l'impression qu'à la résolution de la date (au moment du getTime()), le celandrier va à l'heure 12 suivante. Si tu fais le test dans l'après midi, cela correspond à minuit le jour d'après : d'où le décallage de jour et ma phrase :
    il y a une manip à faire sur le jour je pense, mais là va falloir que tu cherches un peu quand même
    J'avais aussi, un décallage sur le jour, mais pas le temps de regarder en détail à ce moment là, j'espère avoir correctement réparé mon erreur.

    Voili voilà....
    A+

  17. #17
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    ok merci jvais jchercher aussi
    javoue c'est curieux d'avoir un resultat :S
    merci encore

  18. #18
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    ah bne non javais bien mis ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.set(Calendar.HOUR_OF_DAY, 12);
    lol

  19. #19
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    En fait, avec ce code ca fonctionne parfaitement chez moi. J'ai même testé en faisant varier les heures et les dates windows pour être sûr que le décallage soit bon et je tombe toujours sur le lendemain à midi.

    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
    public class TestDate {
     
    	public static void main(String[] args) {
    		SimpleDateFormat dateFormat = new SimpleDateFormat(
    				"dd/MM/yyyy hh:mm:ss aaa");
    		Date date = new Date();
     
    		System.err.println("AUJOURD'HUI = " + dateFormat.format(date));
     
    		Calendar calendar = new GregorianCalendar();
    		calendar.setTime(date);
    		calendar.add(Calendar.DAY_OF_YEAR, 1);
    		calendar.set(Calendar.HOUR_OF_DAY, 12);
    		calendar.set(Calendar.MINUTE, 0);
    		calendar.set(Calendar.SECOND, 0);
    		calendar.set(Calendar.MILLISECOND, 0);
    		System.err.println("DEMAIN = " + dateFormat.format(calendar.getTime()));
     
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AUJOURD'HUI = 31/12/2007 10:16:20 AM
    DEMAIN = 01/01/2008 12:00:00 PM

  20. #20
    Membre averti Avatar de haco28
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    hihi merci man
    ca marche maintenant ! jsais pas pourquoi mais javais reecri tout depuis le debut comme on s'etait dit ca marchait pas et j'aiencore refait et ca passe mdr !
    sinon j'ai bien fais de faire comme ta fais pour tester en changeant l'heure systeme .
    ok cool merci man !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme date et heure avec mysql.
    Par argon dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/07/2005, 22h42
  2. Pb Calcul de dates ET heure
    Par priest69 dans le forum Access
    Réponses: 4
    Dernier message: 13/06/2005, 12h33
  3. récupérer la date et heure système
    Par Rnx69 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2005, 15h43
  4. [date et heure] convertion d'une date en chaîne
    Par jean-jacques varvenne dans le forum SQL
    Réponses: 5
    Dernier message: 23/03/2005, 11h31
  5. Manipulations de dates et heures
    Par benj63 dans le forum C++
    Réponses: 5
    Dernier message: 16/12/2004, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo