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 :

Créer date complète avec date + heure et comparer


Sujet :

Collection et Stream Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut Créer date complète avec date + heure et comparer
    Bonjour,

    Voilà ce que je veux :

    1°/J'ai une date de type '21/10/2008' au format Date
    2°/J'ai une heure au format String de type '17H45'

    Je veux comparer ces informations pour détecter si l'heure actuelle (exemple il est 17H32) est dans un intervalle de temps inférieur à 15 minutes.

    Voilà tout ce que je sais faire mais après je suis perdu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    		Date dateNow = new Date ();
    			String sFormat = "dd/MM/yyyy HH:mm";
    			SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
    			String test = myDate.toString() + myTime;
    			Date myDateTotale= sdf.parse(test); //marche pas!!
     
    			long diff = myDateTotale.getTime() - dateNow.getTime();
     
    			if(diff > 0 && diff/(1000*60) < 15 )
    			{
    				//action
    			}
    Merci.

  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
    je crois que tu mélange un peu tout

    Date n'a pas de format intrinsèque, et si t'affiche date.toString (que tu utilise) tu va vite comprendre que ce format est un peu trop exhaustif par rapport à la demande.

    Option 1
    D'abord tu dois convertir ta date de référence en String, avec le format dd/MM/yyyy.
    ensuite tu concatène: dateString+" "+heureString
    ensuite tu parse le tout dans une nouvelle date
    Enfin tu compare les millisecondes avec new Date() pour avoir la différence.

    Option 2
    Tu fait un Calendar avec ta date.
    Dans ce calendar, tu défini les heure / minutes à ce que tu lit dans la string d'heures (à parser toi même)
    Tu met dans ce calendar les secondes / millisecondes à 0
    Tu reconvertit ce calendar en Date et tu compare les millisecondes avec new Date()

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    OK; mais maintenant je n'arrive pas à utiliser la fonction parse.

    Je vois partout dans les forums que tout le monde arrive à utiliser cette fonction en passant un String mais chez moi ça donne "Unhandled exception type ParseException"

    Alors que j'ai bien construit une date en string avant de type "22/10/2008 18:10"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		Date dateNow = new Date ();
    			String sFormat = "dd/MM/yyyy HH:mm";
    			SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy HH:mm");
    			SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");;
    			String test = sdf2.format(myDate) + " " +  myTime.replace('H', ':');
    			Date myDateTotale= sdf.parse(test); //marche pas!!
    
    			long diff = myDateTotale.getTime() - dateNow.getTime();
    
    			if(diff > 0 && diff/(1000*60) < 15 )
    			{
    				//action
    			}

  4. #4
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Ton erreur vient tout simplement du fait que la méthode parse est susceptible de déclencher une exception de type ParseException.

    Or, comme il s'agit d'une exception vérifiée (checked exception), tu es obligé soit de la gérer (en entourant le code d'une clause try-catch), soit de la propager (en mettant une clause throws ParseException dans la signature de ta méthode).

    Va voir la FAQ ou fait une recherche sur les exceptions Java pour plus de détails.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Points : 159
    Points
    159
    Par défaut
    Ahhhhhhhhhhhhh...
    bah je pouvais toujours chercher dans la syntaxe...

    Et oui, c'est bien le forum des débutants...

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

Discussions similaires

  1. Date SQL avec l'heure
    Par stc074 dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2014, 18h07
  2. axe X chart avec date complète
    Par petitours dans le forum C#
    Réponses: 1
    Dernier message: 15/01/2012, 11h34
  3. Créer un répertoire avec date du jour
    Par yzf-r dans le forum Langage
    Réponses: 8
    Dernier message: 08/02/2010, 19h27
  4. [Dates] Problème avec date (heure qui varie)
    Par Death83 dans le forum Langage
    Réponses: 10
    Dernier message: 05/08/2006, 02h19
  5. [Dates] pb avec date et mktime
    Par dark_vidor dans le forum Langage
    Réponses: 1
    Dernier message: 08/09/2005, 21h49

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