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 :

Problème de conversion de date


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Problème de conversion de date
    Bonjour,

    A partir d'une date exprimée sous le format année-semaine-jour de la semaine,
    je voudrais obtenir un objet Date.

    voici mon code :
    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
    26
    27
    28
    29
    30
    31
     
    public static Date convertAAAASSJToDate(Integer aaaassj) {
     
    		if (aaaassj == null) {
    			return null;
    		}
     
    		String toConvert = aaaassj.toString();
     
    		if (toConvert.length() < 6) {
    			return null;
    		}
     
    		String annee = toConvert.substring(0, 4);
    		String semaine = toConvert.substring(4, 6);
    		String jour = "1";
     
    		if (toConvert.length() > 6) {
    			jour = toConvert.substring(6, 7);
    		}
     
    		GregorianCalendar calendar = new GregorianCalendar();
    		calendar.setFirstDayOfWeek(Calendar.MONDAY);
    		calendar.setMinimalDaysInFirstWeek(4);
     
    		calendar.set(Calendar.YEAR, Integer.parseInt(annee));
    		calendar.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(semaine));
    		calendar.set(Calendar.DAY_OF_WEEK, Integer.parseInt(jour));
     
    		return calendar.getTime();
    	}
    La date retournée est bonne à un jour prés. En gros, il considère toujours que la semaine commence le dimanche.

    Quelqu'un sait-il comment résoudre ce problème?

    Merci

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Citation Envoyé par loulou Voir le message

    La date retournée est bonne à un jour prés. En gros, il considère toujours que la semaine commence le dimanche.

    Quelqu'un sait-il comment résoudre ce problème?

    Merci
    C'est normal. Pour résoudre ce problème, il te suffit de faire un +1 (modulo 7) sur ton jour de la semaine. Et d'ailleurs, si tu avais eu des mois dans ta date, tu aurais eu un problème similaire (Janvier est le mois 0 en Java, Décembre étant le mois 11).

    Ceci dit, tu te compliques bien la vie. Regarde la classe "SimpleDateFormat". Elle devrait te permettre de régler ton problème en 3/4 lignes de code au maximum je pense

Discussions similaires

  1. probléme de conversion de date
    Par vanesa dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 30/01/2009, 15h03
  2. problème de conversion de date
    Par thaundeadboss dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/06/2008, 07h07
  3. Problème de conversion de date en C#
    Par Xitog dans le forum Framework .NET
    Réponses: 9
    Dernier message: 10/09/2007, 14h11
  4. [T-SQL] Problème de conversions de dates
    Par kooljy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2006, 14h19
  5. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31

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