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.
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.
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]) où 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])
|
TO_DATE |
Convertit une chaîne de caractères en un type Date/Time. |
TalendDate.TO_DATE(string[, format])
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)
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. |
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.