Datums-/Uhrzeitproblem beim Update auf 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

Dieses Off-by-one-Problem entsteht normalerweise dadurch, dass das Datum einmalig als echtes Date/Timezone-Objekt konvertiert wird und dann als Sheet-/Tab-Schlüssel wiederverwendet wird. Für dieses Setup würde ich den Workbook-Lookup und den Day-Tab-Lookup zu zwei expliziten String-Ausgaben machen und aufhören, ein Date-Objekt an den finalen Google-Sheets-Node zu übergeben.

Ein sicheres Muster ist: Erstelle direkt vor dem Update-Node etwas wie sold_day_key = DateTime.fromFormat($json.sold_date, 'MM/dd/yyyy', { zone: 'America/New_York' }).toFormat('dd') in einem Set-Node-Ausdruck, und übergebe dann sold_day_key als Sheet-Name. Wechsle die Zone zu deiner Reporting-Zeitzone. Protokolliere auch das rohe sold_date + den Workbook-Namen + den Tab-Schlüssel im gleichen Node, damit du genau sehen kannst, wo 01 zu 02 wird.

Ich kann die Workflow-JSON nehmen und das in den exakten Set/Code-Node plus eine kleine Test-Matrix umwandeln, wenn du das asynchron bearbeitet haben möchtest. Meine E-Mail ist oimrqs.ops@gmail.com.

Was ich also empfehlen würde, ist, dass du vor dem Versuch, das Blatt in einer Arbeitsmappe auszuwählen, etwas wie getDay verwendest und auch die Empfehlung von @oimrqs_ops befolgst, die Zeitzone explizit zu übergeben, bevor du das Datum konvertierst.

guten tag @djjace

Ich denke, das Problem liegt im Google Sheets Node.
n8n konvertiert den Wert in einen echten DateTime, bevor es den Reiter-Namen auswählt. Da deine Reiter nur Tag-Bezeichner sind, würde ich dort keinen DateTime verwenden. Ich würde den Sheet-Namen direkt aus der ursprünglichen Sold Date Zeichenkette erstellen, zum Beispiel indem ich den Tagteil extrahiere und ihn nur bei Bedarf auffülle, und dann diese einfache Zeichenkette als Sheet-Namen übergebe. Das hält die Zeitzonen-Konvertierung aus der Routing-Logik heraus und sollte verhindern, dass 01 zu 02 wird.