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

Java Discussion :

Conversion de dates


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut Conversion de dates
    Voila, j'ai fait une fonction qui a pour but de renvoyer un objet Date correspondant au premier jour du mois de la Date passée en entrée.

    ex : PremierJour(15/05/2010)->01/05/2010

    J'utilise pour cela un Gregorian Calendar et un SimpleDateFormat.
    Voici le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	GregorianCalendar cal2 = new GregorianCalendar(2010,5,15);
    	System.out.println("num of day="+cal2.get(Calendar.DAY_OF_MONTH));
    	int nbDiff2=cal2.get(Calendar.DAY_OF_MONTH)-1;
    	System.out.println("diff="+nbDiff2);
    	System.out.println("now in millis     ="+cal2.getTimeInMillis());
    	long diff2=cal2.getTimeInMillis()-(nbDiff2*24*3600*1000);
    	System.out.println("now in millis-diff="+diff2);
    	Date d2=new Date(diff2);
    	SimpleDateFormat sdf2=new SimpleDateFormat("dd/MM/yyyy");
     
    	System.out.println("Date = "+d2);
    	System.out.println("formatted Date = "+sdf2.format(d2).toString());
    et voila la trace de sortie !!

    num of day=15
    diff=14
    now in millis =1276552800000
    now in millis-diff=1275343200000
    Date = Tue Jun 01 00:00:00 CEST 2010
    formatted Date = 01/06/2010
    Aussi tordus qu'ils soient, mes calculs sont justes. C'est au niveau du parsing de la nouvelle date que ça merde. Si je mets en entrée 15/04, le résultat sera 1/05,etc.

    Une idée ?

    merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    pfff si c'est pas se compliquer la vie pour rien....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Date d = ...;
     
    Calendar c = Calendar.getInstance();
    c.setTime(d);
    c.set(Calendar.DAY_IN_MONTH, 1);
     
    Date d2 = c.getTime();
    (y'a ptetre des ptites fautes, j'ai fait ça de mémoire)


  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Par défaut
    effectivement ! gros casse tête pour rien !
    merci !

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

Discussions similaires

  1. Conversion de date
    Par jdu dans le forum Access
    Réponses: 2
    Dernier message: 26/01/2005, 16h17
  2. Conversion de dates
    Par Gogoye dans le forum Modules
    Réponses: 5
    Dernier message: 10/08/2004, 11h39
  3. - [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
  4. Conversion de date lors d'un import
    Par bilbon.S dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/03/2004, 14h33
  5. Conversion de date et division 64 bits
    Par dway dans le forum Assembleur
    Réponses: 38
    Dernier message: 27/01/2004, 10h31

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