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

Langage Java Discussion :

Convertir une String année en une Date année


Sujet :

Langage Java

  1. #1
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut Convertir une String année en une Date année
    Je m'excuse de vous poser une question qui peut vous paraître simple mais je souhaiterai savoir comme convertir une string qui ne contient que l'année en une date qui ne contient que l'année.

    J'ai cherché des informations notamment sur SimpleDateFormat et sur calendar mais je n'ai pas trouver comment faire pour les utiliser dans mon cas


    J'essaie de récupérer des semaines en fonction de leurs date de début et de leur date de fin. Si elle contiennent l'année recherchée, elles doivent s'afficher

    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
     
    public List<SemaineDisplay> getListSemaineDispByUniteAndTypeSemaine(Integer idUnite, String typSemaine, String year1,  String year2) {
     
    	SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
     
     
     
     
    	List<SemaineDisplay> listSemaineDisp = new ArrayList<SemaineDisplay>();
     
    	String queryString =
    			"select distinct semaine.nomUnite, semaine.idSemaine, semaine.numeroSemaine, semaine.roulementSem, "
    					+" semaine.dateModif, semaine.dateDebutSem, semaine.dateFinSem, semaine.type  "
    					+" from Semaine as semaine " 
    					+" where semaine.idUnite = ? "
    					+" and semaine.type = ? "
    					+" and semaine.dateDebutSem like ? "
    					+" or semaine.dateFinSem like ? "
    					+" ORDER BY semaine.numeroSemaine ASC"
    					+" group by semaine.idSemaine";
     
     
     
     
    	Object[] params = {idUnite, typSemaine, "%"+year1+"%", "%"+year2+"%"};
    Merci infiniment de votre aide

  2. #2
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonjour

    Selon la javadoc
    A year y is represented by the integer y - 1900.
    Je ne crois pas que soit puisse être possible.
    Pourquoi ne pas simplement utiliser un int pour les années ?
    As tu vraiment besoin d'un format Date ?

  3. #3
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut
    Merci beaucoup de votre réponse

    C'est ce que je craignais u_u


    Comment puis je faire pour ne récupérer que l'année ?
    Ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("dateDebutSemaine : ^^ "+this.getDateDebutModif());
    me renvoie cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ** getDateDebutModif : Mon Apr 08 00:00:00 CEST 2013
    J'essaie cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String dateDebSemaine = ""+dateDebutSemaine;
    		String [] dateannee = dateDebSemaine.split("&nbsp;");
    		String annee = dateannee[0];
    		System.out.println("***annee**** : "+annee);
    Mais çà ne marche pas u_u

  4. #4
    Membre habitué
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 360
    Points : 139
    Points
    139
    Par défaut
    Merci encore de votre aide.

    J'ai réussi à obtenir la donnée que je voulais, bien que cela entraine par derrière que je dois rajouter un champs année dans ma BDD...

    Voici la solution pour ceux que çà intéresserait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	if(this.getDateDebutModif() != null){
    		semaineDto.setDateDebutSem(this.getDateDebutModif());
     
            SimpleDateFormat sdf2 = new SimpleDateFormat("EE-dd-MM-yyyy");
            Calendar debut = Calendar.getInstance();
            debut.setTime(this.getDateDebutModif());
          	String numemoJourValue = ""+sdf2.format(debut.getTime());
           	String dateJour= numemoJourValue.substring(5,15);
          	String anneeDebutSem = dateJour.substring(6,10);  
            System.out.println("***anneeDebutSem**** : "+anneeDebutSem);
     
    	}

  5. #5
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonsoir

    Puisque tu utilises Calendar, tu peux aussi obtenir l'année comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int anneeDebutSem = debut.get(Calendar.YEAR);
    System.out.println("***anneeDebutSem**** : "+anneeDebutSem);
    Comme tu vois, par contre ça renvoi un int

    Bonne continuation

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur Java/Scala
    Inscrit en
    Octobre 2007
    Messages
    1 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Scala

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 086
    Points : 2 271
    Points
    2 271
    Par défaut
    Oulalala


    Si tu en es a faire du travail de parsing de dates dans ta couche DAO (accès aux données) c'est pas bon signe: ce travail doit être fait en amont dans ton appli et l'interface de la methode qui accède a la base de donnée devrait être propre et typée (cad avec des Date et pas des String)

    De plus tu ne devrais pas avoir besoin de rajouter une colonne année dans ta base de données. Avoir des date, datetime ou autre timestamp devraient suffire.

    Idéalement tu ne devrais stocker dans ta base que la date de début de la semaine (éventuellement la fin mais pas indispensable).

    A partir de la tu peux concaténer une requête plus ou moins complexe qui permet de faire ce que tu veux.
    N'ai pas peur de manipuler un peu les objets Date avant de faire ta query.

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

Discussions similaires

  1. Transformer un Tableau de String en seul une string
    Par jojob dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 31/05/2011, 13h44
  2. Réponses: 3
    Dernier message: 05/01/2007, 15h50
  3. [Vb.net] Comment faire une liste à partir d'une string
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/10/2006, 14h15
  4. [string] vérifier si une string en contient une autre
    Par vasilov dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/12/2005, 14h50
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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