Routines de type TalendDate - Cloud - 8.0

Guide d'utilisation du Studio Talend

Version
Cloud
8.0
Language
Français
Product
Talend Big Data
Talend Big Data Platform
Talend Cloud
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement
Last publication date
2024-03-28

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.

Avertissement : 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.

Disponible dans :

Big Data

Big Data Platform

Cloud Big Data

Cloud Big Data Platform

Cloud Data Fabric

Data Fabric

Real-Time Big Data Platform

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.

Avertissement :

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.