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

Développement de jobs Discussion :

Conversion d'un string en date : 12/14 en 01/12/2014


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut Conversion d'un string en date : 12/14 en 01/12/2014
    Bonjour
    pour reconvertir un string en date j'ai utilisé le parsage mais malheureusement ca marche pas?

    output_row.DatePeriode = TalendDate.parseDate("dd/MM/yyyy",("01/" + input_row.DatePeriode));

    J'ai rajouté le 01 pour toute les date le mois commence toujours par le 1er.

    Merci à vous

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2010
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 343
    Points : 653
    Points
    653
    Par défaut
    Bonjour,

    D'après ton titre ton String qui représente une date est au format MM/yy

    donc il faut utiliser la fonction suivante :

    TalendDate.parseDate("MM/yy",input_row.DatePeriode)

    Ensuite si tu veux changer la représentation de ta date tu utilises soit la colonne Pattern dans le schema du composant. Tu gardes ainsi un type Date
    sinon tu reconvertis en String avec la fonction :
    TalendDate.formatDate("dd/MM/yyyy",taDate) qui convertit une Date en String.

  3. #3
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut Merci
    Merci à vous pour l'ensemble des explications.

    en efet je suis arrivé a ce stade, je ormate ma date et je la parse mais malheureusement js la meme erreur : unparsseable Date

    output_row.DatePeriode = TalendDate.formatDate("yyyy-MM-dd",TalendDate.parseDate("yyyy/MM",("01/" + input_row.DatePeriode)));

    Vous en pensez quoi?

    Merci

  4. #4
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    Hello,

    Essaie ceci.

    TalendDate.addDate(TalendDate.parseDate("MM/yy",input_row.DatePeriode) ,00,"dd") (un peu trafiqué)

    En fait t'as pas besoin d'ajouter le 01, par défaut si tu mets pas de jour, il prendra le "1er".

    Il suffirait de mettre TalendDate.parseDate("MM/yy",input_row.DatePeriode) puis choisir comme pattern d'affichage "dd-MM-yyyy"


    Bon courage
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  5. #5
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut hello
    Merci pour la réponse ...

    Ca ne marche pas , tjs le même probleme, unparsable date.

    cette histoire me décourage lol je creuse .lol

  6. #6
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    hello,

    tu peux mettre quelques captures d’écran, (de ton tMap, de ton input, de l'erreur) stp
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  7. #7
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut
    voici la ligne :

    output_row.DatePeriode = TalendDate.addDate(TalendDate.parseDate("MM/yy",input_row.DatePeriode) ,00,"dd");

    C'est sur un TjavaRow que je fais la modiication.

    Merci à toi
    Images attachées Images attachées  

  8. #8
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    OK
    J'arrive pas à lire le message d'erreur en entier

    Petite question bête ()

    - le type de datePeriode dans l'output du tJava est bien Date ?
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  9. #9
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut hello
    Lol .. en entrée j'ai un type string et pareil que pour la sortie ...

    Merci

    Le message d'erreur :

    [statistics] connecting to socket on port 3668
    [statistics] connected
    Exception in component tJavaRow_3
    java.lang.RuntimeException: java.text.ParseException: Unparseable date: ""
    at routines.TalendDate.parseDate(TalendDate.java:835)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.tFileInputDelimited_3Process(Manitou_Italie_DELSCH.java:7337)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.tJavaFlex_1Process(Manitou_Italie_DELSCH.java:5160)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.tBufferInput_1Process(Manitou_Italie_DELSCH.java:4770)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.tFileInputDelimited_2Process(Manitou_Italie_DELSCH.java:17709)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.runJobInTOS(Manitou_Italie_DELSCH.java:17938)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.main(Manitou_Italie_DELSCH.java:17765)
    Caused by: java.text.ParseException: Unparseable date: ""
    at java.text.DateFormat.parse(Unknown Source)
    at routines.TalendDate.parseDate(TalendDate.java:821)
    ... 6 more

  10. #10
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut

    Ah ben c'est pour ça. parseDate transforme un String en Date. le type de ta sortie de ton tJavaRow doit être de type date
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  11. #11
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut oui j'ai fais la rectif
    oui j'ai fais la rectif
    Mais le message d'erreurs est :

    [statistics] connecting to socket on port 3668
    [statistics] connected
    Exception in component tJavaRow_3
    java.lang.RuntimeException: java.text.ParseException: Unparseable date: ""
    at routines.TalendDate.parseDate(TalendDate.java:835)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.tFileInputDelimited_3Process(Manitou_Italie_DELSCH.java:7337)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.tJavaFlex_1Process(Manitou_Italie_DELSCH.java:5160)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.tBufferInput_1Process(Manitou_Italie_DELSCH.java:4770)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.tFileInputDelimited_2Process(Manitou_Italie_DELSCH.java:17709)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.runJobInTOS(Manitou_Italie_DELSCH.java:17938)
    at commande_client.manitou_italie_delsch_0_1.Manitou_Italie_DELSCH.main(Manitou_Italie_DELSCH.java:17765)
    Caused by: java.text.ParseException: Unparseable date: ""
    at java.text.DateFormat.parse(Unknown Source)
    at routines.TalendDate.parseDate(TalendDate.java:821)
    ... 6 more

  12. #12
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut

    regarde dans le code à la ligne 7337 c'est quoi ce qui cloche
    Je pense que tu dois avoir des enregistrement avec datePeriode null ou vide "". faudrait les filtrer
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  13. #13
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut Hello
    Sur la partie code, j'ai cela.

    row13.DatePeriode = TalendDate.addDate(TalendDate.parseDate("MM/yy", row12.DatePeriode), 00,"dd");

    Enfin la formule ...

  14. #14
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    Est ce que dans ton fichier input tu as des dates nulles ou "" vides ?
    Si oui, tu devrais les filtrer

    row13.DatePeriode = (row12.DatePeriode !=null && !"".equals(row12.DatePeriode) ? TalendDate.parseDate("MM/yy",row12.DatePeriode) : null);

    avec l'output de type date
    Images attachées Images attachées  
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  15. #15
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut Super
    Super je vient de tester, e ca marche, j'aurais jamais trouvé sans votre aide. Merci bcp

  16. #16
    Membre actif Avatar de kayim
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2011
    Messages : 134
    Points : 283
    Points
    283
    Par défaut
    c'est cool
    oublie pas de le mettre en résolu
    Etre un homme c'est regarder le diable droit dans les yeux et lui dire d'aller se faire foutre...

  17. #17
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut salut
    désolé du retard, vous voulez dire par quoi resolu? merci

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

Discussions similaires

  1. Conversion d'un String en Date
    Par Kasko dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 15/03/2015, 00h26
  2. [2008] Conversion d'un string en date dans une clause WHERE
    Par Florian54 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 30/05/2014, 16h04
  3. Conversion d'un string en date
    Par souhail72 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 07/11/2013, 11h08
  4. Conversion d'une String en Date
    Par NFHnv dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/02/2013, 16h41
  5. [Dates] Conversion d'un string en date
    Par ludo2612 dans le forum Langage
    Réponses: 9
    Dernier message: 04/02/2008, 21h15

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