Este equipo especializado pasados varios días de trabajo y de juntar de información, hallamos la respuesta, queremos que te resulte útil para tu trabajo.
Solución:
Entre bastidores, DatePipe
usa la configuración regional para mostrar la fecha en la zona horaria del usuario. Prueba con clientela datos de la zona horaria:
1931-05-31T00:00:00.000-0300
en vez de 1931-05-31T00:00:00.000+0000
.
Puede obtener la compensación del cliente en minutos usando (new Date()).getTimezoneOffset()
Este es en realidad el problema/limitación conocido de DatePipe
. La comunidad es consciente de ello. En el futuro, podrá especificar la zona horaria como uno de los parámetros ( value
).
Aquí está el problema en github: https://github.com/angular/angular/issues/9324
Para manipulaciones de fechas más avanzadas, recomiendo moment.js
(menos dolores de cabeza, mejor consistencia, menos pruebas, mantenimiento más simple).
EDITAR: Se ha añadido:
date_expression | date[:format[:timezone[:locale]]]
Código: https://github.com/angular/angular/blob/5.0.4/packages/common/src/pipes/date_pipe.ts#L137 Documentos: https://angular.io/api/common/DatePipe
para angular 5 y superior, puede intentar agregar la zona horaria en la tubería,
Por defecto, toma la zona horaria local de la máquina del usuario
y puede especificarlo en minutos, por ejemplo, para GMT-2, zona horaria: ‘-120’
date: 'short' : '-120'