es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Script de la aplicación para convertir la fecha de la API a una fecha específica: function convertirFecha(fechaAPI) { var fecha = new Date(fechaAPI); // Convirtiendo la fecha de la API en un objeto de tipo Date var dia = fecha.getDate(); // Obteniendo el día de la fecha var mes = fecha.getMonth() + 1; // Obteniendo el mes de la fecha (+1 porque los meses empiezan en 0) var anio = fecha.getFullYear(); // Obteniendo el año de la fecha return dia + “/” + mes + “/” + anio; // Devolviendo la fecha en el formato específico deseado (dd/mm/yyyy) } // Ejemplo de uso var fechaAPI = “2022-01-01”; // Fecha de la API en formato “yyyy-mm-dd” var fechaConvertida = convertirFecha(fechaAPI); console.log(fechaConvertida); // Imprime “01/01/2022”

Tengo un valor de retorno de datos de API como este: 2022-01-07T12:03:58.273Z. Quiero cambiar esta fecha a 2022-01-07 12:03:58.
Mi código para convertir no funciona, este es mi código:

    const txt = result.getContentText()
    const d = JSON.parse(txt)
    const time = d.status.timestamp;
    Logger.log(time)

    // obtener la zona horaria
    var timeZone = Session.getScriptTimeZone();

    // convertir la fecha a otro formato
    var formattedDate = Utilities.formatDate(time, timeZone, "yyyy-MM-dd HH:mm");
    Logger.log(formattedDate)

El resultado es:

Registro de ejecución
1:07:42 PM  Notice  La ejecución comenzó
1:07:43 PM  Info    2022-01-07T12:07:43.172Z
1:07:44 PM  Error   
Excepción: Los parámetros (String,String,String) no coinciden con la firma del método Utilities.formatDate.
coData  @ Untitled.gs:27

enter image description here

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que el formato de fecha devuelto por la API (2022-01-07T12:03:58.273Z) está en formato ISO 8601, el cual no es directamente compatible con el método Utilities.formatDate(). Para convertirlo al formato deseado (2022-01-07 12:03:58), es necesario analizar la cadena de fecha ISO 8601 en un objeto de fecha de JavaScript y luego formatearla utilizando el método Utilities.formatDate().

    Aquí tienes un fragmento de código actualizado que debería funcionar:

    const txt = result.getContentText();
    const d = JSON.parse(txt);
    const time = d.status.timestamp;
    Logger.log(time);
    
    // analiza la cadena de fecha ISO 8601 en un objeto de fecha de JavaScript
    const date = new Date(time);
    
    // obtén la zona horaria
    const timeZone = Session.getScriptTimeZone();
    
    // formatea la fecha
    const formattedDate = Utilities.formatDate(date, timeZone, "yyyy-MM-dd HH:mm:ss");
    Logger.log(formattedDate);
    

    En el código actualizado, primero creamos un nuevo objeto Date a partir de la cadena de fecha ISO 8601. Esto nos permitirá usar el método Utilities.formatDate(). Luego formateamos la fecha utilizando el formato deseado (yyyy-MM-dd HH:mm:ss). Esto debería darnos el resultado deseado (2022-01-07 12:03:58).

Comments are closed.