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

avec Java Discussion :

Calendar java: avoir une heure précise


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Calendar java: avoir une heure précise
    Bonjour,
    par défaut, lorsque je crée mon attribut de l'objet Calendar. Celui-ci se trouve à la du jour et l'heure actuelle.
    j'aimerais pouvoir préciser dans mon getter l'heure (heure, minute et seconde) de mon attribut peu importe la date.
    Par exemple: au lieu d'avoir une date avec l'heure (16::45::12), peut-on mettre ceci à (00::00::00) à chaque fois que je lance mon application ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Calendar maDate;
     
    public getMaDate() {
        if(maDate!=null){
            maDate = new GregorianCalendar();
            // ici peut-on modifier l'heure ?
     
    }
    Avez-vous une idée ?
    Merci d'avance.
    Dernière modification par bouye ; 12/04/2018 à 13h20. Motif: insertion de la balise [CODE]

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par la javadoc de la classe calendar
    void set​(int field, int value)
    Sets the given calendar field to the given value.

    void set​(int year, int month, int date)
    Sets the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.

    void set​(int year, int month, int date, int hourOfDay, int minute)
    Sets the values for the calendar fields YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, and MINUTE.

    void set​(int year, int month, int date, int hourOfDay, int minute, int second)
    Sets the values for the fields YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE, and SEC
    Voir la javadoc
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Gaffe quand même aux millisecondes. Si on les veut aussi à zéro il faut le faire explicitement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je me suis peut-être mal expliqué au message précédent.
    Je voulais en fait garder la date du jour mais pouvoir modifier les heures par celles que je voulais.
    Je ne savais pas quelle méthode setter je devais utiliser et comment l'utiliser mais j'ai trouvé ceci à mettre dans le getter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    maDate.set(GregorianCalendar.HOUR_OF_DAY, 0);
    maDate.set(GregorianCalendar.MINUTE, 0);
    maDate.set(GregorianCalendar.SECOND, 0);
    maDate.set(GregorianCalendar.MILLISECOND, 0);
    Merci à vous deux
    Je peux mettre ceci en résolu
    Dernière modification par bouye ; 26/04/2018 à 01h53. Motif: Insertion de la balise [CODE]

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Une remarque concernant les Date/Calendar : à partir de Java 8 je déconseille de les utiliser si possible, en leurs préférant l'API java.time.

    Date/Calendar regroupent plusieurs problèmes :
    • La gestion des TimeZone est complexe à manipuler
    • L'API n'est pas vraiment très pratique
    • Les intances ne sont pas immuables. Elles peuvent donc être modifié involontairement ce qui peut provoquer des bugs bizarres et difficile à déceler.
    • Cela mélange plusieurs concepts, ce qui rend le tout difficile à gérer proprement et facilement.
    • Des affichages par défaut peu explicite et qui varient selon le TimeZone de la machine...
    • etc.



    L'API java.time propose plusieurs types pour gérer tout les besoins :
    • LocalDate qui représente une date (jour, mois, année)
    • LocalTime qui représente un horaire (heure, minute, seconde, voir nanosecondes)
    • LocalDateTime qui représente une date avec horaire.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Si tu veux uniquement la date du jour :
    LocalDate maDate1 = LocalDate.now();
     
    // Si tu veux également l'heure :
    LocalDateTime maDate2 = LocalDateTime.now().truncatedTo(ChronoUnit.DAYS);
    // ou bien :
    LocalDateTime maDate2 = LocalDate.now().atTime(0,0);
    Dans la grande majorité des cas c'est amplement suffisant, mais si besoin on peut utiliser OffsetTime, OffsetDateTime ou ZonedDateTime pour gérer un offset ou un fuseau horaire...


    a++

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/08/2006, 09h40
  2. [Date] Avoir une heure GMT
    Par hitech dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 21/07/2006, 09h57
  3. Exécuter une action à une heure précise
    Par Rhadamanthe59 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 09/02/2006, 23h12
  4. [PPC][C#] Reveiller un PPC à une heure précise
    Par aeled dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 27/12/2005, 15h00
  5. Comment avoir une heure... à l'heure?
    Par SpyesX dans le forum Access
    Réponses: 7
    Dernier message: 19/10/2005, 17h33

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