Tengo un formato de patrón de zona horaria como se muestra a continuación " 2021-10-29T18:01:23+07:00 ", por lo que quiero obtener la hora actual con la misma zona horaria que la anterior. ¿Puede alguien ayudarme con este problema?
Intenté este código pero no funciona.
new Date().toGMTString()
Muchas gracias.
En general, recomendaría buscar en MomentsJS. Es muy útil cuando se trabaja con Fecha. Viene con funciones de formato y también con características en las que puede agregar o deducir fechas de manera segura.
Documentos de MomentJS: https://momentjs.com/
Con los métodos de Date
nativos, lo más cercano que puede obtener es con el uso de:
new Date().toISOString() // '2021-11-02T13:12:26.229Z'
Pero esto devuelve la hora GTM, para obtener la hora local en su patrón especificado, debe formatearlo usted mismo:
function formatDateString(date) { //Function to format numbers (prepending leading zero and adding sign) const f = (n, sign = false) => (sign ? (n < 0 ? "-" : "+") : "") + n.toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false }); //Compute Date, Time and Zone const d = `${date.getFullYear()}-${f(date.getMonth() + 1)}-${f(date.getDate())}`; const t = `${f(date.getHours())}:${f(date.getMinutes())}:${f(date.getSeconds())}`; const z = `${f(-date.getTimezoneOffset() / 60, true)}:00`; //Return it all together return `${d}T${t}${z}`; } var mydate = new Date(); console.log(mydate.toISOString()); console.log(formatDateString(mydate));
O puede usar una biblioteca de terceros como MomentJS .