Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Thu 22 January 2015 10:15

Xavier Julian
Participant assidu
Lieu: Orange
Date d'inscription: 19 Jan 2015
Messages: 218

Transformer une chaîne de caractère en un type date [FME2014]

Bonjour à tous,

Je cherche à transformer un champ de type texte, contenant une date au format JJ/MM/AAAA, en un champ de type date.
Je dois en effet ajouter des enregistrements à une de mes géodatabase qui contient un champ "date_de_saisie" de type date, mais le fichier source que je veux ajouter à ma base est un Shape avec le champ "date_de_saisie" de type texte.

J'ai essayé le "DateFormatter", mais ce transformer ne permet de convertir qu'un champ type date en un autre champ de type date, avec un autre format.
J'ai aussi essayé "TimeStamper", mais ce transformer ne fait qu'ajouter une date, alors que je veux garder les valeurs de mon champ source.

Merci par avance !
Xavier.

Hors ligne

 

#2 Thu 22 January 2015 10:53

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1019
Site web

Re: Transformer une chaîne de caractère en un type date [FME2014]

Salut,

J'aurais préconisé un dateformater avec %j %m %Y


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#3 Thu 22 January 2015 10:53

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Transformer une chaîne de caractère en un type date [FME2014]

Il faut utiliser les transformers de base : SubstringExtractor, StringReplacer et StringConcatenator pour restructurer votre champ texte.
Par exemple "JJ/MM/AAAA" en "AAAA-MM-JJ".
La structure cible dépend de la structure attendue par le format de sortie. Le mieux est de regarder un exemple dans dataInspector ou de se plonger dans la doc du format.


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#4 Thu 22 January 2015 11:24

Xavier Julian
Participant assidu
Lieu: Orange
Date d'inscription: 19 Jan 2015
Messages: 218

Re: Transformer une chaîne de caractère en un type date [FME2014]

Merci, ça marche.
Voilà la solution détaillée pour ceux que ça intéresse :

- 3 "SubstringExtractor" pour extraire le jour, le mois, et l'année.
- "StringConcatenator" pour restructurer la date au format AAAAMMJJ. Il faut concaténer les 3 listes résultant des "SubstringExtractor".
- "DateFormatter" configuré comme il suit : Date Attributes = résultat de StringConcatenator / Source Date Format = Automatic Detection / Destination Date Format = (%Y%m%d) / Set Invalid Date Attributes to = <null>

Merci !
Xavier.

Dernière modification par Xavier Julian (Thu 22 January 2015 12:15)

Hors ligne

 

#5 Thu 26 February 2015 15:57

iben42
Participant actif
Lieu: Larnage
Date d'inscription: 29 Dec 2010
Messages: 87

Re: Transformer une chaîne de caractère en un type date [FME2014]

Bonjour,

Pourquoi ne pas remplacer les 3 SubstringExtractor par un StringSearcher en utilisant l’expression régulière :
^([0-9]*)/([0-9]*)/([0-9]*)$

Dernière modification par iben42 (Thu 26 February 2015 15:57)

Hors ligne

 

#6 Fri 27 February 2015 11:16

pierreb
Participant actif
Lieu: La Rochelle
Date d'inscription: 3 Oct 2011
Messages: 73

Re: Transformer une chaîne de caractère en un type date [FME2014]

J'ai un doute : pourquoi un simple DateFormatter ne fonctionne pas ? Je viens de tester vite fait avec un excel en entrée (champs au format texte) et une gdb en sortie (attribut type date) et le transformer semble suffire. Qu'est-ce que je manque ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB