Problème pour saisir une date sur java [Résolu]

AntoineJava - 9 avril 2017 à 18:12 - Dernière réponse : KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention
- 10 avril 2017 à 18:22
Bonjour,
j'écris un code dans lequel un utilisateur crée un projet en lui attribuant un nom, une description... et une deadline sous forme de date.
Problème : je n'arrive pas faire saisir la date par l'utilisateur. Android studio annonce une erreur.
    private void creerNouveauProjet(){
        Scanner sc = new Scanner(System.in);
        System.out.println("nom : ");
        String nom = sc.nextLine();
        System.out.println("Description : ");
        String description = sc.nextLine();
        System.out.println("Veuillez entrer une deadline (: ");
        Scanner scandate=new Scanner(System.in);
        String entree=scandate.next();
      
        SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy") ; 
        Date temps=sdf.parse(entree); // ERREUR :  ici Android Studio annonce que sdf.parse(entree) est une unhandle exception java.text.ParseException
        currentUser.addProjet(new Projet(nom, description, temps, currentUser.getListeProjets().size(),new ArrayList<Task>()));//on crée tout et on ajoute ça a la liste de projet de k'user
        System.out.println("Votre projet a bien été ajouté");
        System.out.println("");
    }


J'ai importé les codes suivants :
package com.example.arnaud.synch_up;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Date;
import java.text.DateFormat;// affiché en gris comme non utilisé
import java.text.ParseException;//affiché en gris comme non utilisé


Je souhaite que l'utilisateur entre une date sur la console dans une string et que mon code stock cette date dans une variable au format date.

Merci
Afficher la suite 

4 réponses

Répondre au sujet
KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 9 avril 2017 à 22:54
0
Utile
Bonsoir,

Quelle String as tu tapé au moment de saisir ta date ?

Normalement elle devrait être au format "9/4/2017"
Commenter la réponse de KX
AntoineJava - 10 avril 2017 à 11:11
0
Utile
2
Bonsoir,
J'ai résolu mon problème.

Visiblement ce genre de code nécessite un bloc catch + try de type :

public static int compareDate(String sdate1, String sdate2) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd", Locale.FRANCE);
try {
Date date1 = simpleDateFormat.parse(sdate1);
} catch (ParseException e) { // Insert this block.
// TODO Auto-generated catch block
e.printStackTrace();
}

} // Il faut copier coller tout ce qui est en gras italique. :)






Source : http://stackoverflow.com/questions/17399761/cannot-convert-my-string-to-date
Attention, il faut importer certaines méthodes java
comme
import java.util.ParseExecption
KX 15089 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 décembre 2017 Dernière intervention - 10 avril 2017 à 18:22
"Visiblement ce genre de code nécessite un bloc catch + try"
Si tu veux gérer des cas d'erreurs oui, de même que quand tu lis un entier il faut vérifier que c'est bien un entier qui est saisi, mais si la date est au bon format quand on la tape la sécurité du try/catch devient inutile. Le problème vient surtout de taper la date au bon format dès le départ...
Commenter la réponse de AntoineJava