Tengo un tiempo guardado como una cadena en mi base de datos. Estoy tratando de analizar ese tiempo usando Luxon, y luego configuro varias partes de fecha en mis diversos controles. Si bien no recibo ningún error durante el análisis, obtengo valores inesperados.
La hora con la que estoy probando: 12:05 a. m. América/Chicago
Estoy tratando de analizar de la siguiente manera.
const date = DateTime.fromFormat(value, 'hh:mm a z');la salida es
Hora: 1 (incorrecto)
Minuto: 05 (correcto)
Meridien: (AM) (correcto)
Zona horaria: America/New_York (incorrecta)
Si establece opts.setZone en verdadero, mantendrá DateTime en la hora de Chicago, por lo que cualquier resultado se mostrará en esa zona horaria.
Para mostrar la hora en su zona local, puede usar DateTime.toLocal() .
Puede cambiar de zona nuevamente usando la función DateTime.setZone() si es necesario.
const { DateTime } = luxon; const value = '12:05 AM America/Chicago'; const date = DateTime.fromFormat(value, 'hh:mm a z', { setZone: true }); console.log('Timezone:', date.toFormat('z')) console.log('Time (Chicago):', date.toFormat('hh:mm a')) console.log('Time (local):', date.toLocal().toFormat('hh:mm a')) console.log('Time (New York):', date.setZone('America/New_York').toFormat('hh:mm a')) .as-console-wrapper { max-height: 100% !important; } <script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/2.3.1/luxon.min.js" integrity="sha512-Nw0Abk+Ywwk5FzYTxtB70/xJRiCI0S2ORbXI3VBlFpKJ44LM6cW2WxIIolyKEOxOuMI90GIfXdlZRJepu7cczA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>