Problème de date/heure lors de la mise à jour vers Google Sheets

Describe the problem/error/question

I am updating to google sheets using rotating variables. I have Workbooks named Sales - January 2026, and so on
inside those workbooks are sheets named 01,02,03, for the days of the month
I have my sales stats being pulled in, then I grab the sold date, change the date to do a google sheets search to find the workbook, then once it finds the workbook, it uses the sold date again to update the sheet (by name)
the issue is happening in the last step, if the date is 01/03/2026, it will always try and update the 02 sheet
it is like the date/time I am seeing in n8n is not what is really there
I made sure my time zone was set in the workflow and I double checked the server time zone, both are correct

What is the error message (if any)?

Please share your workflow

Share the output returned by the last node

Information on your n8n setup

    • platform: docker (self-hosted)
    • nodeJsVersion: 24.14.1
    • nodeEnv: production
    • database: postgres
    • executionMode: regular
    • concurrency: 1
    • license: enterprise (production)
    • consumerId: 6384698f-6660-45c3-b287-06c96943ef5e

Cet off-by-one provient généralement du fait que la date est convertie une fois en tant que valeur Date/timezone réelle, puis réutilisée comme clé de sheet/onglet. Pour cette configuration, je créerais la recherche du classeur et la recherche de l’onglet du jour comme deux sorties de chaîne explicites, et j’arrêterais de transmettre un objet Date au nœud Google Sheets final.

Un modèle sûr est : juste avant le nœud de mise à jour, créez quelque chose comme sold_day_key = DateTime.fromFormat($json.sold_date, 'MM/dd/yyyy', { zone: 'America/New_York' }).toFormat('dd') dans une expression de nœud Set, puis transmettez sold_day_key comme nom de sheet. Remplacez la zone par votre fuseau horaire de reporting. Enregistrez également la date de vente brute + le nom du classeur + la clé d’onglet dans le même nœud afin de voir exactement où 01 devient 02.

Je peux prendre le JSON du workflow et transformer cela en un nœud Set/Code exact plus une petite matrice de test si vous voulez que ce soit traité de manière asynchrone. Mon email est oimrqs.ops@gmail.com.

Je recommanderais donc d’utiliser quelque chose comme getDay avant de tenter de sélectionner la feuille dans un classeur et de suivre également la recommandation de @oimrqs_ops qui consiste à transmettre explicitement le fuseau horaire avant de convertir la date.

bonjour @djjace

Je pense que le problème se trouve dans le nœud Google Sheets.
n8n convertit la valeur en véritable DateTime avant de choisir le nom de l’onglet. Puisque tes onglets sont juste des identifiants de jour, je n’utiliserais pas DateTime à cet endroit. Je construirais le nom de la feuille directement à partir de la chaîne Sold Date d’origine, par exemple en extrayant la partie jour et en la complétant uniquement si nécessaire, puis je transmettrais cette chaîne simple comme nom de feuille. Cela évite la conversion de fuseau horaire dans la logique de routage et devrait empêcher que 01 devienne 02.