De api obtengo una marca de tiempo devuelta como: 1643295022
¿Cómo lo convierto a 2020-08-26T08:46:01+02:00 con Javascript?
export const generateDate = (time: number) => { return new Date(time * 1000); }; Lo anterior devuelve el Fri Jan 28 2022 12:57:00 GMT+0100 (Central European Standard Time) . ¿Cómo lo convierto en algo como 2022-01-27T14:50:22+02:00 ?
También para otro ayudante que ya estoy usando date-fns . ¿Quizás pueda usarlo en este caso?
Creo que lo que está buscando es una fecha con formato ISO pero con la información de compensación de zona horaria.
Puede obtener el desplazamiento de la zona horaria con getTimezoneOffset() y luego agregarlo al final del formato de fecha obtenido de toISOString() después de eliminar la cadena de segundos después de . .
Debido a que el resultado de getTimezoneOffset() es en minutos, debe convertirlo en HH:MM con los signos + y - necesarios.
Espero que lo siguiente sea de ayuda.
const isoWithTimeZone = d => { let TZ=(d=new Date(d*1000)).getTimezoneOffset(), a=Math.abs(TZ); return d.toISOString().split(".")[0]+(TZ<0?"+":"-")+("00"+~~(a/60)).slice(-2)+":"+("00"+a%60).slice(-2); } console.log(isoWithTimeZone(1643295022));