Dender cada vezs con sello en la zona del miembro, lea cada uno como UTC

Fixkamo-internal
Se descapó
22 de agosto de 2026 a las 11:28 UTC
Autor
kamo
Compromit
ec88120

Un mensaje directo enviado a las 3:33 AM Pacific mostró "10:33 AM" . el reloj, impreso como si fuera local. Dos defectos independientes, presentes juntos en casi todas las superficies que muestran un tiempo. EL PARSA. Cada servicio de Java almacena marcas de tiempo como LocalDateTime y los pone en el alambre con toString (): "2026-08-22T10:33:12.345", sin desplazamiento y No Z. El valor es UTC, porque las vainas lo son, pero la cadena no lo dice. y ECMAScript lee una fecha-temporada sin desplazamiento como LOCAL. nueva Fecha() en una Los El navegador de Los Ángeles aterrizó siete horas tarde, plausiblemente, en todas partes. THE RENDER. toLocaleTimeString() sin formatos de horarioZona en los BROWSER's zona, un hecho sobre el portátil. Un miembro cuyo perfil dice que Eastern trabaja desde un hotel en Denver todavía debe leer sus registros en Eastern. useFormatters() construyó cada Intl.DateTimeFormato sin horarioZona en absoluto. app/lib/serverTime.ts es ahora el único lugar que ambos están asentados: parseServerDate / aServerDate / serverEpochMillis trata una cadena sin offset como UTC y pasa un en zona a través de intactos; formatoInZone y amigos rinden en un zona explícita; un YYYY-MM-DD desnudo se queda el día que nombra en lugar de deslizar espalda uno para todos al oeste de Greenwich; baldes de DavidKey de zonado por el miembro día para que un mensaje del Pacífico de las 6pm deje de presentarse bajo tierra mañana. La zona en sí se resuelve SERVER-SIDE en el trazado de la raíz y se lleva a cabo por MemberTimezoneProvider, por lo que la SSR y el cliente se ponen de acuerdo en el primer render más bien que voltear después de la hidratación. useFormatters() lo une, y 175 componentes ahora Quédate a partir de ahí. time zoneService es reemplazado y documentado como tal: Lee TZ de ***, que PostAuth***Service llena de la fila de los USERS más bien que el perfil del miembro, luego acecha en localStorage para siempre, por lo que corregir una zona horaria de perfil parecía no hacer nada hasta que los datos del sitio estuvieran - Abido. No sólo cosmética. Los recibos de lectura de chat se compararon con las marcas de tiempo de mensajes en dos relojes diferentes, y esa comparación decide si "desviado" o "revocan el accesorio" se ofrece. callbackUrgency y la urgencia respondida "es esto debido hoy" en el calendario del navegador; ambos ahora toman la zona del miembro, y sus pruebas lo nombran en lugar de depender de dónde se ejecute la suite. **************** está conectado en la prueba npm y falla la construcción sobre una nueva ocurrencia de cualquiera de los dos defectos incluyendo la Fecha.parse y Intl.DateTeeFormat de ortaduras. Una prueba no puede atrapar esto solo: los accesorios se consiguen construido con toISOString (), que añade la producción Z no envía, por lo que la suite pasa mientras la aplicación está a horas. Excepciones genuinas (un reloj de pared el miembro mecanografiado, una fecha de calendario anclada al mediodía UTC) llevar un servidorTime-ok comentar diciendo por qué.

Todos los cambios

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios