Guía de fechas y horas en Power Automate

El día de hoy vamos a ver una guía ilustrada a las horas y fechas en Power Automate en donde nos enfocaremos en las múltiples formas en que podemos recuperar, manipular y cambiar estos dos datos.

RECUPERANDO FECHA Y HORA

Empecemos viendo el método con la función utcNow.

La función utcNow() (usada en una Acción Compose) regresa la fecha y hora en el siguiente formato:

Power Automate fechas horas 1

Como podemos intuir, esto no es particularmente atractivo para una presentación visual y es probable que la usemos si nos encontramos específicamente capturando un punto exacto de hora/fecha, como lo puede ser el registro de un evento.

Ahora veamos el método con una Acción Current Time.

Podemos recuperar la fecha por medio de esta Acción. Similar al método con la función utcNow(), esto recupera la fecha y hora en el mismo formato, aunque es regresado como un objeto JSON, tal y como podemos ver a continuación:

Power Automate fechas horas 2

CAMBIANDO ZONA HORARIA

Empecemos con el método mediante la función @utcNow.

La función @utcNow puede ser manipulada si usamos una función adicional, siendo esta la función addHours(). Para poder hacer esto, en lugar de simplemente poner «utcNow()» en la sección de expresión, necesitaremos poner addHours() y luego pasar utcNow() dentro de ella[?] como su primer parámetro. Lo siguiente será pasar la diferencia de horas (por ejemplo, PST es UTC -8) separado por una coma.

Para obtener la zona horaria UTC-6 necesitaremos usar: addHours(utcNow(), -6).
Podemos ver la diferencia a continuación:

Luego tenemos el método con la Acción Current Time.

Este método es posiblemente más simple ya que simplemente pasamos el resultado de la Acción Current Time dentro de una acción Convert Time Zone. Luego de esto, seleccionaremos el tiempo fuente como UTC (o si estamos recuperando el tiempo de una fuente distinta necesitaremos seleccionarla). Una vez que esté seleccionada, podemos simplemente seleccionar ‘Destination Time’; la zona horaria que deseamos como salida (por ejemplo, UTC-6).

La salida de este valor se vera asi:

FORMATO DE HORA Y FECHA CON @utcNow()

El formato de la Acción Current Time es, como ya mostramos anteriormente, con Convert Time Zone. La función @utcNow() requiere más entradas para dar formato a la fecha y hora de manera correcta.

1. Esto nos mostrará el día actual en un valor numérico (como 01 para el primer día del mes).

utcNow('dd')

2. Esto nos mostrará el día actual en un valor de texto con el nombre del día de la semana (como lo es «lunes»).

utcNow('dddd')

3. Es muy importante tener en cuenta que ‘MM’ se escribe con mayúsculas, por lo cual tenemos que evitar escribir ‘mm’. Esto nos mostrará el mes actual en un valor numérico (por ejemplo, 25 para el vigésimo quinto mes).

utcNow('MM')

4. Igual que en el caso anterior, debemos asegurarnos de escribir ‘MMMM’ en mayúsculas. Esto nos mostrará el mes actual en un valor de texto.

utcNow('MMMM')

5. Esto nos dará el año actual y, como podemos ver, volvemos a usar minúsculas para el valor del año.

utcNow('yy')

6. Esto nos dará la hora actual en un formato de horas:minutos y AM/PM.

utcNow('t')

7. Esto nos dará la hora actual en un formato de horas:minutos:segundos y AM/PM.

utcNow('T')

DIA/MES/AÑO

Al combinar estas funciones podemos crear y cambiar el formato de una fecha. utcNow(‘dd/mm/yyyy’) nos proveerá una fecha en formato numérico como 25/12/2019.

Power Automate fechas horas 3

Ya se, manejar fechas y horas es complicado en Power Automate, pero solo recuerda dos cosas:

  • Las fechas son Strings, por lo que deben ser tratadas como tal
  • Muchas veces, no tendrás opción.

Cualquier duda nos leemos abajo.

Guía de fechas y horas en Power Automate

15 comentarios en «Guía de fechas y horas en Power Automate»

  1. buenos dias angel, tienes presente como hacer para que me salga la fecha larga por ejemplo 16 de marzo de 2023. quedo atento muchas gracias.

  2. Hola,

    Estoy intentado actualizar una fila de una tabla de Excel, mediante un flujo con la expresión utcNow(‘dd/MM/yyyy’). Sin embargo Excel reconoce la información como un texto y NO como una fecha.

    Sabes cual es la mejor manera de que no pase esto?

  3. Hola,
    Estoy pasando una lista de actividades Excel a Planner y a su vez el planner sincroniza las tareas con el calendario de la persona responsable de cada tarea; sin embargo, las fechas de inicio y vencimiento son diferentes entre el planner y el calendario de Outlook, en este último la actividad es reflejada un día antes que en el planner. La expresión que estoy usando para convertir la fecha de Excel al Planner es:

    if(empty(item()?[‘Fecha de Inicio’]),null,addDays(‘1899-12-31’,int(item()?[‘Fecha de Inicio’]),’dd-MM-yyyy’))

    Cómo puedo lograr que las fechas sean las mismas?

    Gracias

    1. Hola Luis Alfonso.
      Si estas trayendo la consulta de Excel ya no es necesario usar ninguna formula. En tu paso de list rows solo ve a las opciones avanzadas y trae la fecha como iso-8601 y listo, todas las fechas llegan en el formato necesario para power automate. Así se arregla el tema
      Saludos!

  4. Hola. Estoy usando «Obtener una fila» del excel. La fecha que tiene cargada me la toma como un número, por ejemplo 43251. Cómo puedo hacer para compararla con el string?

  5. Hola, cómo estas?
    Existe forma de tomar la fecha de hoy con el formato 12-08-2021, pero con esta expresión «addHours(utcNow(), -5)» Ya que requiero la ejecución de un flujo a media noche y me tome los valores de ese mismo día.

    O cual es la manera más sencilla, ya que power automate me trae por defecto una hora mayor a 5 horas de mi país

    Gracias!!

    1. Hola Daniel!
      Cuando configuras tu flujo calendarizado, tienes la opcion de escoger la hora UTC en la que corre.
      Si lo seleccionaste desde el menú de ayuda se verá así.

      Presiona donde dice Editar y abre las opciones avanzadas, ahí veras la configuración para la hora.

      Espero te ayude.
      Saludos!

    1. Hola Rafael.
      Necesitas crear una variable tipo Array con los nombres de los meses en español.
      Luego, usando la funcion int + formatDateTime sacas el numero de mes y lo usas para obtener el numero de la lista. Algo así:
      variables(varArray)[int(formatDateTime(utcNow(),’MM’))]

      Saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba