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 :

Date parser un timestamp


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut Date parser un timestamp
    Salut,

    j'ai un problème avec les Date en java.

    Je récupère un String qui contient la valeur d"un timeStamp mysql.

    Je voudrai le formater en "dd/mm/yy" .. et en refaire une String.
    A chaque tentative, j'obtiens des
    " java.lang.IllegalArgumentException: Cannot format given Object as a Date"
    ou des
    "java.text.ParseException: Unparseable date: "20290805170000""

    je ne sais pas comment faire..

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Comment tu parses ta date ? Les solutions de la FAQ devraient faire l'affaire...
    Tu l'obtient comment ? D'une connection JDBC ? Si oui pourquoi ne pas utiliser le type java.sql.Date ?

    a++

  3. #3
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    Mais j'utilise le type Date..

    Le cheminement est assez compliqué..
    je poste un formulaire struts avec un String qui contient une valeur Date 'dd-mm-yy'

    Je fais ensuite une insertion de ce String dans un TimeStamp mysql de cette maniere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     private final static SimpleDateFormat MYSQL_TIMESTAMP = new SimpleDateFormat("yyyyMMddHHmmss");
     
    String d = MYSQL_TIMESTAMP.parse(form.getDateFrom()).toString();
    et c la valeur de d que je mets dans ma table..
    en mode debug, pas à pas, je vois que cette String ne vaut pas ce à quoi je m'attends..

    avec form.getDateFrom =29-08-05 17:00
    j'obtiens d=Wed Dec 08 00:05:17 CET 0028

    alors que mon simpleDateFormat dit "yyyyMMddHHmmss"

    ??

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Je crois que tu confonds un peu les méthodes...

    La méthode parse() sert à convertir un chaine de caractère (String) d'un certain format en un objet Date. Un objet Date comporte seulement un champs de type long contenant le nombre de millisecondes depuis 1970.

    Citation Envoyé par jeb001
    j'obtiens d=Wed Dec 08 00:05:17 CET 0028
    Ceci est tout à fait normal car c'est la représentation par défaut d'un objet Date...


    Donc la méthode parse() convertit ta chaine "29-08-05 17:00" en un objet de type Date en utilisant le format "yyyyMMddHHmmss". Comme cela ne correspond pas il te renvoit une Date érroné (il faudrait que tu utilises setLenient(false) pour avoir une Exception dans ce cas).

    Ensuite tu convertis cette date avec toString() qui utilise le format par défaut...


    Si tu veux formatter l'affichage de la date il faut que tu utilises la méthode format() comme c'est indiquer dans la FAQ : Comment convertir une date en chaîne ?

    a++

  5. #5
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    ok merci, g compris..

    donc, je formate une date avec le format de ma String.. et ensuite, je joue sur les formats depuis mon objet date..
    ok, je dois faire ca en 2 etapes donc.


    Merci bcp !!

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

Discussions similaires

  1. Filtre sur la date d'un timestamp
    Par ottocom dans le forum Hibernate
    Réponses: 1
    Dernier message: 27/05/2007, 17h24
  2. difference entre deux dates de type Timestamp
    Par err dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/08/2006, 18h44
  3. [Dates] repérer les timestamp d'aujourd'hui
    Par peppena dans le forum Langage
    Réponses: 2
    Dernier message: 05/07/2006, 11h12
  4. [Dates] Soustraction de timestamp
    Par illegalsene dans le forum Langage
    Réponses: 5
    Dernier message: 18/05/2006, 10h14
  5. Soustraire 2 dates en unix timestamp
    Par MaKKrO dans le forum C
    Réponses: 7
    Dernier message: 13/04/2006, 08h29

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