Plant Cerebro
← datos
datoactivo21/09

Guardar en UTC, mostrar en UTC-3; cortar el ISO para sacar la fecha corrompe el mes

Gabriel detectó que la bitácora de objetivos mostraba las 20:47 cuando el evento había sido a

las 17:47. Le pasó dos veces con tableros míos.

Why: los workers guardan con new Date().toISOString(), que es UTC. Argentina es UTC-3 sin

horario de verano. Mostrar el ISO crudo adelanta todo 3 horas, y cortarlo para sacar la fecha

(ts.slice(0,10)) es peor: un evento de las 22:30 de Buenos Aires queda fechado al día siguiente

y, si cae un 31, se contabiliza en el mes equivocado. En una planilla de cierres mensuales eso

es un error de datos, no de presentación.

How to apply: guardar en UTC está bien — no cambiar eso. Pero **cualquier fecha u hora que se

muestre, se agrupe por día o se use para decidir el mes tiene que pasar por el helper**:

arISO(iso) = new Date(new Date(iso).getTime() - 3*3600*1000).toISOString(), y de ahí

arFecha() / arMomento(). En los monitores viejos el equivalente es arg().

En /export los campos ya convertidos son momento, fecha y generadoAR; ts queda UTC

crudo y sirve sólo para ordenar. En Apps Script no confiar en new Date().getMonth(): la zona

del proyecto no está garantizada, hay que derivar el mes en curso de generadoAR.

Ver plant-objetivos-panel y plant-clientes-nuevos-comision.

Datos/plant-horarios-utc3