Formater une date dans n8n : le guide ($now, Luxon)

Accueil · Ressources · Guides & actualités

Guides & actualités

Formater une date dans n8n : le guide complet ($now, Luxon, formats)

22 mai 2026 · 7 min de lecture

Récupérer une date dans n8n est facile, l’afficher au bon format l’est moins. Entre le format ISO, les fuseaux horaires et la syntaxe Luxon, beaucoup s’y perdent. Ce guide montre, exemples à l’appui, comment formater une date dans n8n proprement : date française, date et heure, jour en toutes lettres, et les erreurs à éviter.

Pourquoi le format de date pose problème dans n8n

En bref

Dans n8n, une date arrive presque toujours au format ISO (par exemple 2026-05-22T14:30:00.000Z). Pour l’afficher en français ou l’envoyer dans un autre outil, il faut la reformater avec une expression. La méthode la plus fiable utilise $now ou votre champ date, suivi de .toFormat() et de tokens (jour, mois, année).

Quand vous récupérez une date depuis un formulaire, un mail ou une API, n8n la manipule comme un texte au format ISO 8601. C’est pratique pour la machine, illisible pour un humain, et souvent rejeté par les outils qui attendent un format précis (jj/mm/aaaa pour un tableur français, par exemple). D’où la question qui revient sans cesse : comment formater une date dans n8n.

La bonne nouvelle : n8n embarque la bibliothèque Luxon, qui gère les dates proprement. Pas besoin d’installer quoi que ce soit, tout se fait dans une expression.

Les bases : $now, $today et les objets date

n8n expose deux raccourcis très utiles dans les expressions, à écrire entre doubles accolades :

Expressions de base{{ $now }} // date et heure actuelles {{ $today }} // aujourd’hui à minuit {{ $now.toISO() }} // format ISO complet

Pour une date qui vient d’un nœud précédent (un champ date par exemple), enveloppez-la dans DateTime.fromISO() pour obtenir un objet manipulable :

Depuis un champ existant{{ DateTime.fromISO($json.date) }}

Formater une date avec toFormat()

La méthode .toFormat() transforme la date selon des tokens. Chaque lettre représente un élément de la date :

TokenSignificationExemple
ddjour (2 chiffres)22
MMmois (2 chiffres)05
yyyyannée2026
HHheures (24h)14
mmminutes30
ccccjour de la semainejeudi
MMMMmois en toutes lettresmai

On combine ces tokens pour obtenir le format voulu.

Exemples concrets

Formats courants// Date française jj/mm/aaaa {{ $now.toFormat(‘dd/MM/yyyy’) }} // 22/05/2026 // Date et heure {{ $now.toFormat(‘dd/MM/yyyy HH:mm’) }} // 22/05/2026 14:30 // Date en toutes lettres (FR) {{ $now.setLocale(‘fr’).toFormat(‘cccc dd MMMM yyyy’) }} // jeudi 22 mai 2026 // Depuis un champ date du workflow {{ DateTime.fromISO($json.date).toFormat(‘dd/MM/yyyy’) }}

Le .setLocale('fr') est indispensable pour obtenir les noms de jours et de mois en français.

Gérer le fuseau horaire

Par défaut, n8n raisonne souvent en UTC, ce qui décale l’heure affichée. Pour forcer le fuseau français, utilisez setZone :

Fuseau horaire{{ $now.setZone(‘Europe/Paris’).toFormat(‘dd/MM/yyyy HH:mm’) }}

Pensez aussi à régler le fuseau global de votre instance n8n dans les paramètres, pour éviter de le répéter dans chaque expression.

Le nœud Date & Time (sans expression)

Si vous préférez éviter les expressions, n8n propose un nœud Date & Time : il formate, additionne ou soustrait des dates via une interface visuelle. Pratique pour les débutants, il fait le même travail que toFormat() sans écrire de code. Le nœud Edit Fields (Set) permet ensuite de stocker le résultat dans un champ propre, prêt à être envoyé au nœud suivant.

Les erreurs de format de date les plus courantes

  • Confondre les tokens : en Luxon, MM est le mois et mm les minutes. Les inverser est l’erreur numéro un.
  • Oublier le fuseau : une heure décalée de deux heures vient presque toujours d’un problème d’UTC.
  • Formater un texte qui n’est pas une date : appliquer .toFormat() sur une chaîne quelconque renvoie une erreur. Passez d’abord par DateTime.fromISO() ou fromFormat().
  • Mélanger les locales : sans .setLocale('fr'), les mois et les jours sortent en anglais.

Ces points reviennent dans presque tous les workflows. Les maîtriser une fois fait gagner un temps fou ensuite, et c’est exactement le genre de réflexe qu’on installe dans notre formation n8n.

Questions fréquentes

Comment afficher une date au format français dans n8n ?

Utilisez l’expression {{ $now.toFormat('dd/MM/yyyy') }} pour obtenir 22/05/2026. Pour une date issue d’un champ, enveloppez-la d’abord dans DateTime.fromISO().

Pourquoi mon heure est-elle décalée dans n8n ?

Presque toujours un problème de fuseau horaire : n8n raisonne en UTC par défaut. Ajoutez .setZone('Europe/Paris') à votre expression, ou réglez le fuseau global dans les paramètres de l’instance.

Quelle est la différence entre MM et mm dans n8n ?

En Luxon, MM représente le mois et mm les minutes. Les confondre est l’erreur de format la plus fréquente.

Faut-il coder pour formater une date dans n8n ?

Non. Les expressions suffisent, et le nœud Date & Time permet même de tout faire visuellement, sans écrire de code.

Comment obtenir le nom du jour ou du mois en français ?

Ajoutez .setLocale('fr') avant le format : {{ $now.setLocale('fr').toFormat('cccc dd MMMM yyyy') }} donne « jeudi 22 mai 2026 ».

Envie de maîtriser n8n pour de bon ?

Au-delà des dates, apprenez à construire des automatisations fiables de bout en bout, sur vos propres cas, avec un accompagnement sur mesure.