Accéder au contenu principal Passer au contenu complémentaire

Routines de type TalendDate

Les routines TalendDate contiennent plusieurs fonctions qui vous permettent d'effectuer différents types d'opération et de vérification sur le format des expressions de type Date.

Note InformationsAvertissement : Ces fonctions utilisent en interne la classe Java SimpleDateFormat, sauf lorsque le modèle est configuré sur yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss, sans vérification du format de la chaîne de date d'entrée, pour des raisons de performances. Vous devez vous assurer que la chaîne de caractères de date d'entrée correspond au modèle configuré lorsque vous utilisez l'un de ces deux modèles.

Vous pouvez accéder à ces fonctions en double-cliquant sur le nœud TalendDate dans le dossier des routines système dans la vue Repository.

Fonctions de la routine TalendDate

Fonction

Description

Syntax (Syntaxe)

addDate

Ajoute n jours, n mois, n heures, n minutes ou n secondes à une Date Java et retourne la nouvelle date.

Le paramètre de format de données Date est : yyyy, MM, dd, HH, mm, ss ou SSS.

TalendDate.addDate("Chaîne de date initiale", "format de date - ex : yyyy/MM/dd", entier n,"format de la date à ajouter - ex : yyyy").

compareDate

Compare tout ou partie de deux dates, selon le modèle de date si spécifié. Retourne 0 si les dates sont identiques, -1 si la première date est antérieure et 1 si la deuxième est antérieure.

Le paramètre pattern définit le format de date, par exemple "yyyy-mm-dd".

TalendDate.compareDate(Date date1, Date date2,[String pattern])

diffDate

Retourne la différence entre deux dates, en nombre d'années, mois, jours, heures, minutes, secondes ou millisecondes selon le paramètre de comparaison spécifié.

Le paramètre dateType définit le format de la partie de date à comparer. Les valeurs valides sont les suivantes : "yyyy", "MM", "dd", "HH", "mm", "ss", "SSS". La valeur par défaut est "dd".

Le paramètre ignoreDST spécifie s'il faut prendre en compte le changement d'heure (DST) ou non.

TalendDate.diffDate(Date date1, Date date2,[String dateType],[boolean ignoreDST])

Par exemple, TalendDate.diffDate(TalendDate.parseDate("yyyy-MM-dd", "2022-12-01"), TalendDate.parseDate("yyyy-MM-dd", "2022-10-02"), "MM") retourne 2.

diffDateFloor

Retourne la différence entre deux dates, en nombre d'années ou mois selon le paramètre de comparaison spécifié. La valeur est arrondie vers l'entier inférieur le plus proche.

Le paramètre dateType spécifie la partie de la date à comparer. Les valeurs valides sont les suivantes : "yyyy", "MM".

TalendDate.diffDateFloor(Date date1, Date date2, String dateType)

Par exemple, TalendDate.diffDateFloor(TalendDate.parseDate("yyyy-MM-dd", "2022-12-01"), TalendDate.parseDate("yyyy-MM-dd", "2022-10-02"), "MM") retourne 1.

diffDateIgnoreDST

Retourne la différence entre deux dates, en nombre de jours, mois ou années selon le paramètre de comparaison défini, et sans prendre en compte le changement à l'heure d'été (DST).

Le paramètre dateType définit le format de la date à comparer, par exemple "yyyy".

TalendDate.diffDateIgnoreDST(Date1(), Date2(),[String dateType])

formatDate

Retourne une expression de type date formatée selon le modèle de date spécifié.

TalendDate.formatDate("format de date - ex : yyyy-MM-dd HH:mm:ss ", Date() à formater)

formatDateInTimeZone

Formate une date au format défini de date/heure correspondant au fuseau horaire donné.

TalendDate.formatDateInTimeZone(String datePattern, Date tate, String TimeZoneID)

formatDateInUTC

Formate une date au format spécifié de date/heure correspondant au temps universel coordonné (UTC).

TalendDate.formatDateInTimeZone(String datePattern, Date tate, String TimeZoneID)

formatDateLocale

Transforme une date en une chaîne de caractères de type date/heure selon le format utilisé dans le pays cible.

TalendDate.formatDateLocale("format cible", java.util.Date date, "code de la langue ou du pays")

formatDatetimeoffset

Formate la date en chaîne datetimeoffset ISO 8601 de type MSSQL 2008 avec une chaîne au format du fuseau horaire local : yyyy-MM-dd HH:mm:ss.SSSXXX (supporté par JDK 7).

TalendDate.formatDatetimeoffset(Date date)

getCurrentDate

Retourne la date courante. Aucun paramètre d'entrée n'est attendu.

TalendDate.getCurrentDate()

getDate

Retourne les date et heure courantes dans le format spécifié (optionnel). Cette chaîne peut contenir des chaînes de caractères fixes, ou des variables liées à la date. Par défaut, le format de la chaîne de caractères attendu est DD/MM/CCYY.

TalendDate.getDate("Format of the string - ex: CCYY-MM-DD")

getFirstDayOfMonth

Change le jour d'une date en premier jour du mois courant et retourne la nouvelle date.

TalendDate.getFirstDayMonth(Date)

getLastDayOf Month

Change le jour d'une date en dernier jour du mois courant et retourne la nouvelle date.

TalendDate.getLastDayMonth(Date)

getPartOfDate

Retourne une partie d'une date dans le format spécifié. Cette chaîne peut contenir des chaînes de caractères fixes, ou des variables liées à la date.

TalendDate.getPartOfDate("Chaîne de caractères indiquant la partie de la date à récupérer", "Chaîne de caractères au format date à parser")

getRandomDate

Retourne une date aléatoire, au format ISO.

TalendDate.getRandomDate("Chaîne de caractères de type Date, de ", String maxDate)

isDate

Vérifie si l'expression est de type Date et correspond au modèle spécifié. Retourne le booléen true si c'est le cas, et false dans le cas inverse.

TalendDate.isDate(Date() à vérifier, chaîne de caractères pattern, [boolean ignoreTimeZone])

pattern spécifie le format de la date à vérifier. Par exemple yyyy-MM-dd HH:mm:ss.

isDateStrict

Teste la valeur d'une chaîne de caractères en tant que date au format correct selon des règles strictes. Cette validation utilise des outils de temps Java 8. La gamme d'offsets de fuseau horaire est restreinte de -18:00 à 18:00 inclus. Retourne une valeur booléenne qui indique si stringDate est une chaîne de date suivant le modèle correct.

TalendDate.isDateStrict(String stringDate, String pattern)

parseDate

Transforme une chaîne de caractères en Date. Retourne une date au format défini.

TalendDate.parseDate("format date de la chaîne à parser", "chaîne de caractères au format date à parser",["booléen indiquant si le parsing est Lenient, c'est-à-dire, qu'il accepte la correspondance heuristique avec le format"])

parseDateInUTC

modifie une chaîne de caractères en une Date UTC. Retourne une date au format UTC.

Dans un Job Big Data s'exécutant dans un environnement de production, comme plusieurs machines dans différents fuseaux horaires sont utilisées, vous devez toujours utiliser cette routine afin de garantir une sortie correcte du parsing de l'heure et de la date.

TalendDate.parseDateInUTC("format date de la chaîne à parser", "chaîne de caractères au format date à parser",["booléen indiquant si le parsing est Lenient, c'est-à-dire accepte la correspondance heuristique avec le format"])

parseDateLocale

Parse une chaîne de caractères selon un format spécifié et en extrait la date. Retourne une date formatée selon la locale spécifiée.

TalendDate.parseDateLocale("format date de la chaîne à parser", "Chaîne de caractères au format date à parser", "code de la langue ou du pays")

setDate

Modifie une partie de la date en entrée par un entier spécifié et basé sur le format spécifié.

TalendDate.setDate(Date, entier n, "format de la donnée à changer - ex :yyyy")

TO_CHAR

Convertit une date en une chaîne de caractères.

TalendDate.TO_CHAR(date[,format])

  • date : valeur de la date à convertir en une chaînes de caractères.
  • format : chaîne de caractères définissant le format de la valeur à retourner.

TO_DATE

Convertit une chaîne de caractères en un type Date/Time.

TalendDate.TO_DATE(string[, format])

  • string : chaîne de caractères à convertir en type Date/Time.
  • format : chaîne de caractères de format correspondant à la partie de l'argument string. Si elle n'est pas spécifiée, la valeur string doit être au format de date MM/dd/yyyy HH:mm:ss.SSS.

Par exemple, TalendDate.TO_DATE("04/24/2017 13:55:42.123") retourne Mon Apr 24 13:55:42 CST 2017.

ADD_TO_DATE

Ajoute une somme spécifiée à une partie d'une valeur datetime et retourne une date au même format que la date passée à la fonction.

TalendDate.ADD_TO_DATE(date, format, amount)

  • date : valeur de la date à modifier.
  • format : chaîne de caractères de format spécifiant la partie de la valeur de date à modifier.
    • Chaînes de caractères de format valides pour les années : Y, YY, YYY, and YYYY.
    • Chaînes de caractères de format valides pour les mois : MONTH, MM, and MON.
    • Chaînes de caractères de format valides pour les jours : D, DD, DDD, DAY, and DY.
    • Chaînes de caractères de format valides pour les heures : HH, HH12, and HH24.
    • Chaîne de caractères de format valide pour les minutes : MI.
    • Chaîne de caractères de format valide pour les secondes : SS.
    • Chaîne de caractères de format valide pour les millisecondes : MS.
  • amount : la valeur de l'entier spécifiant la somme des années, mois, jours, heures, etc via laquelle vous souhaitez modifier la valeur de la date.

Par exemple :

si TalendDate.getCurrentDate() retourne Mon Apr 24 14:26:03 CST 2017,

TalendDate.ADD_TO_DATE(TalendDate.getCurrentDate(), "YY", 1) va retourner Tue Apr 24 14:26:03 CST 2018.

Note InformationsAvertissement :

Dans un format de date, "yyyy" et "YYYY" retournent la même année dans la plupart des cas. Cependant, "YYYY" peut ne pas fonctionner comme attendu :

  • Cependant, il est possible que le format "YYYY" ne fonctionne pas comme attendu, lorsqu'il est utilisé :
  • pour la première semaine de l'année, si l'année ne commence pas par le premier jour de la semaine ;

Par exemple, lorsque vous calculez le jour venant trois jours avant le 2 janvier 2016, le code ci-dessous retourne une date incorrecte :

System.out.println(TalendDate.formatDate("YYYY-MM-dd", TalendDate.addDate(TalendDate.TO_DATE("01/02/2016 08:10:30.123"), -3, "dd")));

alors que ce code-ci retourne la date attendue :

System.out.println(TalendDate.formatDate("yyyy-MM-dd", TalendDate.addDate(TalendDate.TO_DATE("01/02/2016 08:10:30.123"), -3, "dd")));

Il est donc recommandé d'utiliser "yyyy", qui représente les années calendaires.

Exemple de formatage d'une Date

Vous pouvez tester simplement la routine formatDate, à l'aide d'un composant tJava par exemple, pour vérifier qu'une expression de type date est dans le format spécifié :

System.out.println(TalendDate.formatDate("dd-MM-yyyy", new Date()));

La date du jour est instanciée par la fonction Java new Date()et s'affiche dans la vue Run :

Le résultat est 2010-02-25 17:28:07 dans la vue Run.

Exemple de vérification d'une Date

Vous pouvez tester simplement la routine isDate, à l'aide d'un composant tJava par exemple, pour vérifier qu'une expression de type date est dans le format spécifié :

System.out.println(TalendDate.isDate("2010-02-09 00:00:00",
               "yyyy-MM-dd HH:mm:ss"));

Un booléen s'affiche dans la vue Run :

Le résultat est "true" dans la vue Run.

Exemple de comparaison de Dates

Vous pouvez tester simplement la routine compareDate, à l'aide d'un composant tJava afin de comparer deux dates pour, par exemple, vérifier si une date est identique, antérieure ou ultérieure à une date spécifiée, selon le format défini. Cette routine prend deux paramètres (les deux dates) et retourne une des trois valeurs suivantes.
  • -1 : la première date est antérieure à la seconde.
  • 0 : la première date est identique à la seconde.
  • -1 : la première date est postérieure à la seconde.

Voici un exemple d'utilisation de cette routine.

System.out.println(TalendDate.compareDate(TalendDate.parseDate("yyyy-MM-dd", "2015/11/24"), TalendDate.parseDate("yyyy-MM-dd", "2025/11/24")));

Cet exemple compare deux dates : 2015/11/24et 2025/11/24 et retourne la valeur -1 dans la vue Run, indiquant que la première date est antérieure à la seconde.

Le résultat est -1 dans la vue Run.

Exemple de configuration de Date

Vous pouvez tester simplement la routine setDate, à l'aide d'un composant tJava, pour changer l'année de la date courante par exemple :
System.out.println(TalendDate.formatDate("yyyy/MM/dd HH:mm:ss",new Date()));
                  System.out.println(TalendDate.setDate(new Date(),2011,"yyyy"));

La date courante suivie de la nouvelle date configurée s'affiche dans la vue Run :

Le résultat est 2010/02/26 18:03:14, puis Sat Feb 26 18:03:14 CET 2011 dans la vue Run.

Exemple de parsage de Date

Vous pouvez tester simplement la routine parseDate, à l'aide d'un composant tJava, pour mettre une chaîne de type date au format Date par exemple :
System.out.println(TalendDate.parseDate("yyyy-MM-dd HH:mm:ss",
                  "1979/10/20 19:00:59"));

La chaîne de caractères est transformée en Date et la date est retournée :

Le résultat est Sat Oct 20 19:00:59 CET 1979 dans la vue Run.

Exemple de récupération d'une partie d'une Date

Vous pouvez tester simplement la routine getPartOfDate, à l'aide d'un composant tJava, pour récupérer une partie d'une date, par exemple :

Date D=TalendDate.parseDate("dd-MM-yyyy HH:mm:ss", "13-10-2010 12:23:45");
               System.out.println(D.toString());
               System.out.println(TalendDate.getPartOfDate("DAY_OF_MONTH", D));
               System.out.println(TalendDate.getPartOfDate("MONTH", D));
               System.out.println(TalendDate.getPartOfDate("YEAR", D));
               System.out.println(TalendDate.getPartOfDate("DAY_OF_YEAR", D));
               System.out.println(TalendDate.getPartOfDate("DAY_OF_WEEK", D));

Dans cet exemple, sont retournés dans la vue Run le jour du mois (DAY_OF_MONTH), le mois (MONTH), l'année (YEAR), le numéro de jour de l'année (DAY_OF_YEAR) et le numéro de jour de la semaine (DAY_OF_WEEK). Toutes les données retournées sont de type numérique.

Le résultat est Wed Oct 13 12:23:45 CEST 2010, puis 13, 9, 2010, 286 et 4 dans la vue Run.
Note InformationsNote: Dans la console de la vue Run, la chaîne de caractères qui renvoie aux mois (MONTH) va de 0 à 11 : 0 correspondant à janvier, et 11 correspondant à décembre.

Exemple de formatage de la Date courante

Vous pouvez tester simplement la routine getDate, à l'aide d'un composant tJava, pour récupérer la date courante et la formater selon un modèle spécifié, par exemple :

System.out.println(TalendDate.getDate("CCYY-MM-DD"));

La date courante est retournée selon le format spécifié (optionnel) :

Le résultat est 2010-03-02 dans la vue Run.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.