Trabajando con Javascript, quiero convertir la fecha UTC recibida del servidor al objeto de fecha de la zona horaria local en el navegador del cliente.
¿Qué función/código tengo que usar en Javascript? Por ejemplo, convertir esta fecha UTC: '2021-01-20T17:40:35'.
El formato '2021-01-20T17:40:35' es compatible con ECMA-262, pero sin zona horaria se analiza como local. Si desea que se analice como UTC, simplemente agregue "Z" para establecer el desplazamiento en 0, entonces:
new Date('2021-01-20T17:40:35' + 'Z')analiza la cadena como UTC. Luego, los diversos métodos get* devuelven la fecha y la hora locales, o simplemente toString .
Sin embargo, si desea una función verdaderamente robusta, analícela manualmente, por ejemplo
// Get the parts let [Y, M, D, H, m, s] = '2021-01-20T17:40:35'.split(/\D/); // Treat as UTC let date = new Date(Date.UTC(Y, M-1, D, H, m, s));Hay muchas preguntas sobre el formato de las fechas. Cualquier método toString que no incluya los caracteres "UTC" o "ISO" devolverá valores locales basados en la configuración regional del sistema host para la zona horaria y el horario de verano.
P.ej
let [Y, M, D, H, m, s] = '2021-01-20T17:40:35'.split(/\D/); let date = new Date(Date.UTC(Y, M-1, D, H, m, s)); // Formatted as specified in ECMA-262 console.log(date.toString()); // So-called "locale aware" string, based on language console.log(date.toLocaleString()); // In another timezone for Antarctica/McMurdo console.log(date.toLocaleString('default', {timeZone: 'Antarctica/McMurdo', timeZoneName: 'short'}));