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 :

quantième d'année à modifier en date


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Homme Profil pro
    chef de projets Systeme d'information
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chef de projets Systeme d'information
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Points : 16
    Points
    16
    Par défaut quantième d'année à modifier en date
    bonjour,

    Sur un projet Talend je souhaiterais transformer un champ en quantième d'année (format String 0000015191) au format date (21/07/2015).

    J'ai travaillé avec le tmap et les fonctions (désolé si le terme n'est pas correct) Talenddate.getdate et talenddate.isdate et même FormatSimpleDate, mais je ne parle pas un mot de Jave

    Les trois derniers caractères correspondent au numéro du jour de l'année et les autres à l'année.

    Du coup j'aurais besoin de conseils voir même d'aide.

    Merci par avance.

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Hello,

    Effectivement, avec TalendDate je n'ai jamais regardé et ce format non plus, mais avec une petite routine, ou un tJava tu peux avoir un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String chaineOrigine = "0000015191";
    String jourMois = chaineOrigine.substring((chaineOrigine.length()-3),chaineOrigine.length());
     
    SimpleDateFormat df = new SimpleDateFormat("D");
    Date test = df.parse(jourMois);
    String result = TalendDate.formatDate("dd/MM", test);
    System.out.println(result);
    Remarque : le 191ème jour de l'année j'ai le 10 juillet.

    Par contre pour l'année je ne vois pas comment tu peux l’interpréter, car 15 ça peut être 1015 - 2015 - 3015 ..., c'est une donnée incohérente. Plusieurs options :
    - Année courante, calcul simple pour avoir l'année
    - Programme valable jusqu'en l'an 3000, tu places 20 et tu ajoutes les 2 caractères de la chaîne. Si tu bloques mais ça reprend le même principe que j'ai fait au dessus.

    Bon courage et si je suis à côté n'hésite pas à le dire .
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Membre à l'essai
    Homme Profil pro
    chef de projets Systeme d'information
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chef de projets Systeme d'information
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Merci pour la réponse, effectivement c'est le 10 juillet, je ne sais pas ce qui m'est passé par la tête en écrivant.

    Je fait les tests ce soir ou demain et je ne manquerai pas de revenir pour dire si cela fonctionne ou pas...

  4. #4
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    voici l'implementation visuel
    Images attachées Images attachées  

  5. #5
    Membre à l'essai
    Homme Profil pro
    chef de projets Systeme d'information
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chef de projets Systeme d'information
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Un grand merci à vous j'ai résolu mon problème grâce à vous.

    je vous met le résultat car je ne trouve pas ça très propre mais après plusieurs essais de changement d'année je n'ai pas eu de problème... et sans rien comprendre a ce que je tape je ne vois pas comment faire autrement...


    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
     
     
    String chaineOrigine = input_row.DATE_FAB;
    String jourMois = chaineOrigine.substring((chaineOrigine.length()-3),chaineOrigine.length()); 
    SimpleDateFormat df = new SimpleDateFormat("D");
    Date test = df.parse(jourMois);
    String result = TalendDate.formatDate("dd/MM", test);
     
    String chaineOrigine1 = input_row.DATE_FAB;
    String Annee = chaineOrigine1.substring((chaineOrigine1.length()-5),chaineOrigine1.length()-3); 
    SimpleDateFormat df1 = new SimpleDateFormat("y");
    Date test1 = df1.parse(Annee);
    String result1 = TalendDate.formatDate("/yyyy", test1);
     
    output_row.DATE_FAB = result + result1;
    et mon visuel
    Nom : Capture talend.JPG
Affichages : 421
Taille : 23,7 Ko

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

Discussions similaires

  1. SQL Oracle : modifier l'année d'une date
    Par stof dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/08/2009, 11h26
  2. [Debutant] récupérer l'année d'une date
    Par petitelulu dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 27/10/2004, 15h28
  3. Récupérer le mois et l'année d'une date
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 23/09/2003, 09h17
  4. requête sur l'année d'une date
    Par jo77 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/07/2003, 09h28
  5. Récupérer l'année d'une date
    Par delphim dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/01/2003, 16h33

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