Estoy tratando de usar .format() para convertir la hora ingresada en formato 'ddd, MMM DD, hh:mma', pero lo devuelve en la zona horaria incorrecta en comparación con la zona horaria original prevista (America_NewYork).
const someday = moment('2023-01-27T12:21:08.088Z').format('ddd, MMM DD, hh:mma'); const out = document.getElementById('output'); const someday = moment('2023-01-27T12:21:08.088Z').format('ddd, MMM DD, hh:mma'); out.innerText = someday; <script src="https://momentjs.com/downloads/moment.js"></script> <p>Expected outcome: Fri, Jan 27, 12:21pm </p> <p>Actual outcome: <span id="output"></span></p>Todo lo que tiene que hacer es obtener la hora UTC y luego usar el método local() para convertir esa fecha y hora UTC a su hora local. Aquí hay un código de muestra.
Simplemente haciendo moment.utc().format('YYYY-MM-DD HH:mm'), le dará la hora UTC. También puede configurar el desplazamiento UTC como moment(testDateUtc).utcOffset(10 * 60); // establecer el desplazamiento de la zona horaria en minutos.
const local = moment(moment.utc()).local().format('YYYY-MM-DD HH:mm'); console.log(local); <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>