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 :

Affecter à une variable Date une valeur choisie dans JdateChooser


Sujet :

Collection et Stream Java

  1. #1
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut Affecter à une variable Date une valeur choisie dans JdateChooser
    Bonjour à vous tous.
    Je viens de commencer l'apprentissage de la manipulation des dates en java et j'ai un soucis avec le JdateChooser.
    Avant d'entamer la partie graphique, je faisais la déclaration et l'affectation de la date de cette manière sans problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LocalDate date=LocalDate.of(2015, Month.DECEMBER, 15);
    Maintenant, en mode graphique, je veux affecter à ma variable date une valeur choisie dans le JdateChooser. J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LocalDate date=DateChooser1.getDate();
    mais ça ne marche pas: "la Date ne peut être convertie en LocalDate"
    Etant un super novice, je ne sais pas comment réaliser cette affectation.
    Merci
    J'apprends la programmation pour le plaisir

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pour commencer de quel JDateChooser on parle?

    une java.util.Date en java regroupe une date + une heure sous forme d'un long qui est le nombre de millisecondes depuis epoch. Pour obtenir une LocalDate il faut convertir ça en java 8 puis mapper cet instant dans le temps en une date au moyen d'une timezone:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateChooser1.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

  3. #3
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Merci de votre aide.
    Je n'ai rien compris de ce code d'un Km
    Mais avec un copier/coller ça marche dans mon application
    Merci beaucoup
    J'apprends la programmation pour le plaisir

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par stracoma Voir le message
    Je n'ai rien compris de ce code d'un Km
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DateChooser1.getDate() //récupère un java.util.Date
      .toInstant() // Le transforme en Instant, un moment absolu dans  la nouvelle api java time
      .atZone(ZoneId.systemDefault()) // Transforme en LocalDateTime en utilisant la timezone par défaut de ton système
      .toLocalDate(); //Retire la partie Time pour n'avoir plus qu'une LocalDate

  5. #5
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Merci pour les explications.
    Venu de VB, je trouve les dates dans java trop compliquées (ou peut être une question d'habitude).
    Une autre fois merci
    J'apprends la programmation pour le plaisir

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    C'est surtout que le JDateChooser date d'une époque où il n'y avait pas de LocalDate et que des java.util.Date. Du coup, il retourne du java.util.Date. Si la conversion en LocalDate peut apparaître compliquée, c'est que la "date" représentée par un java.util.Date n'en est pas vraiment une. la conversion n'est donc pas directe.
    C'est comme si tu avais à convertir une position géographique donnée sur une carte papier (un x et un y) à plat en coordonnées terrestres (une lattitude et une longitude) : ce serait complexe à cause de la projection utilisée pour mettre la terre à plat sur une carte, mais la lattitude et la longitude ne sont pas compliquées en ellss-mêmes.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. Réponses: 5
    Dernier message: 04/12/2008, 15h58
  3. Réponses: 10
    Dernier message: 18/01/2008, 14h50
  4. Rendre inactive une combobox selon la valeur choisie dans une 1er combobox
    Par The Molo dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/12/2007, 13h34
  5. Réponses: 3
    Dernier message: 20/09/2005, 18h27

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