Fecha / Hora

La función utcNow devuelve la fecha y hora actual en formato UTC (Tiempo Universal Coordinado). Es el estándar que utiliza Power Automate internamente para evitar confusiones entre zonas horarias. Por defecto, entrega el resultado en formato ISO 8601 (ejemplo: 2026-04-24T16:00:00.000Z).

Parámetros requeridos

Esta función es especial porque sus parámetros son opcionales:

  1. format (Cadena de texto, opcional): Puedes pasarle un «string» con el formato específico que deseas recibir (ej: ‘yyyy-MM-dd’). Si no pones nada, devuelve el sello de tiempo completo.

Ejemplos prácticos

Ejemplo 1: Obtener la fecha y hora completa Es el uso estándar para registrar cuándo se ejecutó un flujo.

  • Expresión: utcNow()
  • Resultado: 2026-04-24T10:15:30.1234567Z

Ejemplo 2: Obtener solo el año actual Muy útil para crear carpetas anuales o etiquetas de copyright.

  • Expresión: utcNow(‘yyyy’)
  • Resultado: 2026

Ejemplo 3: Formato para nombres de archivo Para asegurar que cada archivo tenga un nombre único basado en el momento exacto de su creación.

  • Expresión: utcNow(‘yyyyMMdd_HHmmss’)
  • Resultado: 20260424_101530

💡 Tip

Uno de los errores más comunes es olvidar que utcNow() no devuelve tu hora local. Si estás en Ciudad de México, Madrid o Buenos Aires, el resultado de utcNow() tendrá una diferencia de varias horas respecto a tu reloj.

Para obtener tu hora local, siempre deberás envolver esta función dentro de una conversión, como: convertFromUtc(utcNow(), ‘SA Pacific Standard Time’) (o tu zona correspondiente).

La función formatDateTime toma un sello de tiempo (timestamp) y lo convierte en una cadena de texto con el formato específico que tú elijas. Es la herramienta esencial para presentar fechas en formatos locales (como dd/MM/yyyy) o para extraer partes específicas de una fecha, como solo el nombre del mes o la hora.

Parámetros requeridos

Requiere al menos dos parámetros:

  1. timestamp (Cadena de texto): La fecha y hora original que quieres formatear (usualmente viene de utcNow() o de un campo de una base de datos).
  2. format (Cadena de texto): El patrón de formato deseado (ej: ‘yyyy-MM-dd’).

⚠️ Nota de Oro: Esta función es sensible a mayúsculas.

  • MM = Mes (Month)
  • mm = Minuto (minute)
  • HH = Formato 24 horas
  • hh = Formato 12 horas

Tabla de códigos comunes

CódigoResultadoEjemplo
yyyyAño de 4 dígitos2026
MMMes numérico04
MMMMNombre del mes completoAbril
ddDía del mes24
ddddNombre del día completoViernes
HH:mmHora y minutos (24h)14:30Tabla de códigos comunes

Ejemplos prácticos

Ejemplo 1: Formato estándar latino (Día/Mes/Año)

  • Expresión: formatDateTime(utcNow(), ‘dd/MM/yyyy’)
  • Resultado: 24/04/2026

Ejemplo 2: Fecha legible para un reporte

  • Expresión: formatDateTime(utcNow(), ‘dd [de] MMMM, yyyy’)
  • Resultado: 24 de Abril, 2026

Ejemplo 3: Extraer solo la hora y minutos

  • Expresión: formatDateTime(utcNow(), ‘HH:mm’)
  • Resultado: 10:20 (Basado en UTC).

💡 Tip

A menudo recibimos fechas de Excel o SharePoint que vienen en formatos extraños. Antes de intentar manipularlas, pásalas siempre por un formatDateTime. Si el flujo te da error diciendo que la fecha no es válida, asegúrate de que el timestamp original esté en formato ISO 8601.

Además, recuerda que esta función no cambia la zona horaria, solo cambia cómo se ve la fecha. Si quieres cambiar la hora, primero usa convertFromUtc.

La función addDays añade una cantidad específica de días a un sello de tiempo (timestamp) proporcionado. Lo mejor de esta función es su versatilidad: si le pasas un número positivo, viajas al futuro; si le pasas un número negativo, viajas al pasado.

Parámetros requeridos

Esta función acepta hasta tres parámetros:

  1. timestamp (Cadena de texto): La fecha original a la que quieres sumar días.
  2. days (Número entero): La cantidad de días a sumar (o restar si es negativo).
  3. format (Cadena de texto, opcional): El formato en el que quieres recibir el resultado (ej: ‘yyyy-MM-dd’).

Ejemplos prácticos

Ejemplo 1: Calcular una fecha de vencimiento (Futuro) Imagina que un proceso debe completarse 7 días después de hoy.

  • Expresión: addDays(utcNow(), 7)
  • Resultado: 2026-05-01T… (Si hoy fuera 24 de abril).

Ejemplo 2: Obtener la fecha de ayer (Pasado) Muy útil para flujos que revisan reportes del día anterior.

  • Expresión: addDays(utcNow(), -1, ‘dd/MM/yyyy’)
  • Resultado: 23/04/2026

Ejemplo 3: Sumar días desde una fecha dinámica Supongamos que tienes una fecha de pedido y quieres sumarle los días de entrega que vienen en una variable.

  • Expresión: addDays(body(‘Obtener_pedido’)?[‘fecha_pedido’], variables(‘vDiasEnvio’))
  • Escenario: Si el pedido fue el 2026-04-20 y el envío tarda 3 días, el resultado será 2026-04-23.

💡 Tip

¿Necesitas calcular una fecha de vencimiento pero solo considerando días hábiles? Ten cuidado: addDays cuenta días naturales (incluyendo sábados y domingos). Para saltar fines de semana, necesitarás una lógica un poco más compleja usando una condición que verifique el día de la semana (dayOfWeek).

La función addHours añade una cantidad específica de horas a un sello de tiempo (timestamp). Al igual que su hermana mayor, funciona en ambas direcciones: un número positivo te lleva hacia adelante en el día, y un número negativo te permite ver qué paso hace unas horas.

Parámetros requeridos

Acepta hasta tres parámetros:

  1. timestamp (Cadena de texto): La fecha y hora base.
  2. hours (Número entero): La cantidad de horas a sumar o restar.
  3. format (Cadena de texto, opcional): El formato de salida deseado.

Ejemplos prácticos

Ejemplo 1: Establecer un límite de respuesta (SLA) Imagina que un ticket debe ser atendido en un máximo de 4 horas tras su creación.

  • Expresión: addHours(utcNow(), 4)
  • Resultado: 2026-04-24T14:15:30Z (Si son las 10:15 AM).

Ejemplo 2: Ver el estado de hace 2 horas (Pasado) Útil para flujos que limpian registros temporales o verifican logs recientes.

  • Expresión: addHours(utcNow(), -2, ‘HH:mm’)
  • Resultado: 08:15 (Si son las 10:15 AM).

Ejemplo 3: Ajuste manual de hora (Sin usar convertFromUtc) Aunque no es lo ideal para cambios de zona horaria complejos, a veces se usa para ajustes rápidos de verano/invierno si conoces el desfase exacto.

  • Expresión: addHours(utcNow(), -6)
  • Escenario: Ajuste rápido para una zona horaria con 6 horas de retraso respecto a UTC.

La función addMinutes suma una cantidad específica de minutos a un sello de tiempo (timestamp). Es ideal para escenarios de micro-gestión del tiempo donde las horas son una unidad demasiado grande. Al igual que las funciones anteriores, permite usar números negativos para «retroceder» en el reloj.

Parámetros requeridos

Acepta hasta tres parámetros:

  1. timestamp (Cadena de texto): La fecha y hora de partida.
  2. minutes (Número entero): La cantidad de minutos a sumar o restar.
  3. format (Cadena de texto, opcional): El formato en el que quieres recibir el resultado.

Ejemplos prácticos

Ejemplo 1: Expiración de un código de acceso Imagina que envías un código por correo y solo es válido por 15 minutos.

  • Expresión: addMinutes(utcNow(), 15)
  • Resultado: 2026-04-24T10:30:30Z (Si son las 10:15 AM).

Ejemplo 2: Margen de seguridad para una reunión Quieres enviar un recordatorio 10 minutos antes de que empiece un evento que viene de tu calendario.

  • Expresión: addMinutes(triggerBody()?[‘start’], -10, ‘HH:mm’)
  • Escenario: Si la reunión empieza a las 09:00, el resultado será 08:50.

Ejemplo 3: Cálculo de tiempo de proceso Si sabes que una tarea de Power Automate Desktop tarda unos 5 minutos en promedio y quieres estimar cuándo terminará.

  • Expresión: addMinutes(utcNow(), 5, ‘dd/MM/yyyy HH:mm:ss’)
  • Resultado: 24/04/2026 10:20:30

La función addSeconds añade una cantidad específica de segundos a un sello de tiempo (timestamp). Si estás usando esta función, es porque tu flujo requiere un nivel de control total sobre el tiempo. Es ideal para procesos que ocurren en ráfagas o donde cada segundo cuenta para la validez de una operación.

Parámetros requeridos

Acepta hasta tres parámetros:

  1. timestamp (Cadena de texto): El punto de partida en el tiempo.
  2. seconds (Número entero): La cantidad de segundos a sumar o restar.
  3. format (Cadena de texto, opcional): El formato de salida (ej: ‘HH:mm:ss’).

Ejemplos prácticos

Ejemplo 1: Token de seguridad ultra-efímero Imagina que generas un código que solo es válido por 30 segundos para una validación rápida.

  • Expresión: addSeconds(utcNow(), 30)
  • Resultado: 2026-04-24T10:16:00Z (Si son las 10:15:30 AM).

Ejemplo 2: Registro de tiempo con precisión Para guardar en una base de datos el momento exacto en que terminó un paso técnico, con un pequeño margen de retraso simulado.

  • Expresión: addSeconds(utcNow(), 0, ‘yyyy-MM-dd HH:mm:ss’)
  • Resultado: 2026-04-24 10:15:30

Ejemplo 3: Ajuste de marca de tiempo (Pasado) Si sabes que un sistema externo registra los eventos con 5 segundos de adelanto y quieres sincronizarlo.

  • Expresión: addSeconds(triggerOutputs()?[‘body/eventTime’], -5)
  • Escenario: Resta 5 segundos a la hora que viene del sistema externo.

La función addToTime es una herramienta todo-en-uno que permite sumar o restar una cantidad de tiempo a una fecha, permitiéndote elegir la unidad de medida (segundos, minutos, horas, días, semanas, meses o años) como un parámetro más. Es ideal para flujos dinámicos donde la unidad de tiempo puede cambiar según la configuración del usuario.

Parámetros requeridos

Esta función acepta hasta cuatro parámetros:

  1. timestamp (Cadena de texto): La fecha y hora de origen.
  2. interval (Número entero): La cantidad a sumar (positivo) o restar (negativo).
  3. unit (Cadena de texto): La unidad de tiempo. Debe ser una de las siguientes (en inglés y entre comillas simples): ‘Second’, ‘Minute’, ‘Hour’, ‘Day’, ‘Week’, ‘Month’, o ‘Year’.
  4. format (Cadena de texto, opcional): El formato de salida deseado.

Ejemplos prácticos

Ejemplo 1: Sumar semanas (Lo que no hace addDays) Imagina que un proyecto se revisa cada 2 semanas exactamente.

  • Expresión: addToTime(utcNow(), 2, ‘Week’)
  • Resultado: 2026-05-08T… (Si hoy es 24 de abril).

Ejemplo 2: Calcular renovación anual (Años) Perfecto para contratos o suscripciones que vencen en un año.

  • Expresión: addToTime(utcNow(), 1, ‘Year’, ‘dd/MM/yyyy’)
  • Resultado: 24/04/2027

Ejemplo 3: Restar meses (Pasado) Útil para obtener datos de hace exactamente 3 meses para un reporte trimestral.

  • Expresión: addToTime(utcNow(), -3, ‘Month’)
  • Resultado: 2026-01-24T…

La función convertFromUtc toma un sello de tiempo en formato UTC (como el que entrega utcNow()) y lo convierte a la zona horaria específica que tú le indiques. Es la función que debes usar si quieres que un flujo enviado desde España muestre la hora de Madrid, o uno desde México muestre la hora de CDMX, en lugar de la hora universal de los servidores de Microsoft.

Parámetros requeridos

Esta función requiere al menos dos parámetros (y un tercero opcional):

  1. timestamp (Cadena de texto): La fecha en UTC que quieres convertir.
  2. destinationTimeZone (Cadena de texto): El nombre técnico de la zona horaria de destino (ej: ‘Central Standard Time’).
  3. format (Cadena de texto, opcional): El formato en el que quieres ver el resultado (ej: ‘dd/MM/yyyy HH:mm’).

Ejemplos prácticos

Ejemplo 1: Convertir a la hora de Ciudad de México / Bogotá

  • Expresión: convertFromUtc(utcNow(), ‘SA Pacific Standard Time’)
  • Resultado: 2026-04-24T07:15:30… (Si en UTC son las 12:15 PM).

Ejemplo 2: Convertir a la hora de Madrid (España)

  • Expresión: convertFromUtc(utcNow(), ‘Romance Standard Time’, ‘HH:mm’)
  • Resultado: 14:15 (Si en UTC son las 12:15 PM).

Ejemplo 3: Formato completo para un mensaje de Teams

  • Expresión: convertFromUtc(utcNow(), ‘Argentina Standard Time’, ‘dd/MM/yyyy hh:mm tt’)
  • Resultado: 24/04/2026 09:15 AM

La función convertToUtc toma un sello de tiempo (timestamp) que está en una zona horaria específica y lo convierte al estándar UTC. Es fundamental cuando recibes fechas de sistemas que no usan UTC por defecto, permitiendo que tu flujo realice cálculos precisos (como restas de fechas o condiciones de vencimiento) bajo un mismo estándar universal.

Parámetros requeridos

Requiere al menos dos parámetros (y un tercero opcional):

  1. timestamp (Cadena de texto): La fecha y hora «local» que quieres convertir.
  2. sourceTimeZone (Cadena de texto): El nombre oficial de la zona horaria en la que se encuentra el timestamp original (ej: ‘Pacific Standard Time’).
  3. format (Cadena de texto, opcional): El formato en el que quieres recibir el resultado en UTC.

Ejemplos prácticos

Ejemplo 1: Convertir una fecha de un sistema local Imagina que recibes una fecha de una base de datos que está configurada en hora de Nueva York.

  • Expresión: convertToUtc(‘2026-04-24 10:00:00’, ‘Eastern Standard Time’)
  • Resultado: 2026-04-24T14:00:00.0000000Z (Suma las horas necesarias para llegar a UTC).

Ejemplo 2: Estandarizar la fecha de un formulario Si tu usuario llena un formulario en Buenos Aires y quieres guardar esa fecha en UTC para que el flujo no se confunda.

  • Expresión: convertToUtc(variables(‘vFechaFormulario’), ‘Argentina Standard Time’)
  • Escenario: Si el usuario puso las 08:00 AM, la función devolverá las 11:00 AM en formato UTC.

Ejemplo 3: Conversión con formato específico

  • Expresión: convertToUtc(’24/04/2026 15:00′, ‘Central European Standard Time’, ‘yyyy-MM-dd HH:mm’)
  • Resultado: 2026-04-24 13:00 (Restando las 2 horas de diferencia de Madrid/París en verano).

La función startOfDay toma un sello de tiempo y devuelve el inicio exacto de ese día, es decir, las 00:00:00 (medianoche). Es sumamente útil para «limpiar» una fecha de sus horas y minutos, permitiéndote agrupar registros por día o comparar si dos eventos ocurrieron en la misma fecha calendario.

Parámetros requeridos

Acepta hasta dos parámetros:

  1. timestamp (Cadena de texto): La fecha y hora que quieres redondear al inicio del día.
  2. format (Cadena de texto, opcional): El formato en el que quieres el resultado. Si no se especifica, usa el estándar ISO 8601.

Ejemplos prácticos

Ejemplo 1: Obtener la medianoche de hoy Útil para filtrar elementos creados desde que empezó el día actual.

  • Expresión: startOfDay(utcNow())
  • Resultado: 2026-04-24T00:00:00.0000000Z

Ejemplo 2: Comparar fechas sin importar la hora Imagina que quieres saber si un pedido se hizo hoy. Si comparas directamente con utcNow(), fallará porque las horas no coincidirán.

  • Expresión: equals(startOfDay(triggerBody()?[‘fechaPedido’]), startOfDay(utcNow()))
  • Resultado: True (si ambos ocurrieron el mismo día, sin importar que uno fuera a las 8 AM y el otro a las 4 PM).

Ejemplo 3: Limpiar una fecha para reportes en Excel

  • Expresión: startOfDay(variables(‘vFechaEvento’), ‘dd/MM/yyyy’)
  • Resultado: 24/04/2026 (Asegurando que la hora siempre sea tratada como el inicio del día).

La función startOfHour toma un sello de tiempo y devuelve el inicio exacto de esa hora, reseteando los minutos, segundos y milisegundos a cero. Es decir, si son las 10:45:30, esta función te devolverá las 10:00:00. Es ideal para crear reportes de rendimiento por hora o para verificar si varios eventos ocurrieron dentro del mismo bloque horario.

Parámetros requeridos

Acepta hasta dos parámetros:

  1. timestamp (Cadena de texto): La fecha y hora que quieres redondear al inicio de la hora.
  2. format (Cadena de texto, opcional): El formato de salida deseado (ej: ‘HH:mm’).

Ejemplos prácticos

Ejemplo 1: Obtener el inicio de la hora actual Útil para nombrar archivos que se generan cada hora (logs).

  • Expresión: startOfHour(utcNow())
  • Resultado: 2026-04-24T12:00:00.0000000Z (Si son las 12:38 PM).

Ejemplo 2: Agrupar registros por bloques de hora Imagina que recibes cientos de alertas y quieres que el flujo solo procese la primera de cada hora. Puedes usar esta función para crear una «clave» única.

  • Expresión: formatDateTime(startOfHour(triggerBody()?[‘fechaAlerta’]), ‘yyyy-MM-dd HH:mm’)
  • Resultado: 2026-04-24 12:00 (Todas las alertas entre las 12:00 y las 12:59 tendrán este mismo valor).

Ejemplo 3: Comparar si un evento ocurrió en la misma hora que ahora

  • Expresión: equals(startOfHour(variables(‘vFechaEvento’)), startOfHour(utcNow()))
  • Resultado: True (Si el evento ocurrió a las 12:05 y ahora son las 12:38).

La función startOfMonth toma un sello de tiempo y devuelve el primer día de ese mes a las 00:00:00 (medianoche). Es extremadamente útil para calcular periodos mensuales, filtrar facturas de un mes específico o establecer fechas de inicio para reportes de desempeño.

Parámetros requeridos

Acepta hasta dos parámetros:

  1. timestamp (Cadena de texto): La fecha que quieres llevar al inicio del mes.
  2. format (Cadena de texto, opcional): El formato de salida (ej: ‘yyyy-MM-dd’).

Ejemplos prácticos

Ejemplo 1: Obtener el inicio del mes actual Ideal para filtrar todos los correos o archivos recibidos desde que empezó el mes.

  • Expresión: startOfMonth(utcNow())
  • Resultado: 2026-04-01T00:00:00.0000000Z (Si hoy es 24 de abril).

Ejemplo 2: Calcular el inicio del mes pasado Combinando funciones para obtener el punto de partida de un reporte del mes anterior.

  • Expresión: startOfMonth(addDays(startOfMonth(utcNow()), -1))
  • Escenario: Primero vas al 1 de abril, restas un día (llegas al 31 de marzo) y aplicas startOfMonth para asegurar que sea el 1 de marzo.
  • Resultado: 2026-03-01T…

Ejemplo 3: Formato para carpetas mensuales Si guardas archivos en SharePoint y quieres que la carpeta se llame como el primer día del mes.

  • Expresión: startOfMonth(utcNow(), ‘yyyy_MM_01’)
  • Resultado: 2026_04_01

La función getFutureTime devuelve el sello de tiempo actual más el intervalo de tiempo especificado. Es, en esencia, una versión simplificada de combinar utcNow() con addToTime(). Es ideal para establecer recordatorios, plazos de vencimiento o tareas que deben ocurrir «dentro de X tiempo» a partir de ahora.

Parámetros requeridos

Requiere dos parámetros (y uno opcional):

  1. interval (Número entero): La cantidad de tiempo que quieres sumar al presente.
  2. unit (Cadena de texto): La unidad de tiempo. Debe ser una de las siguientes: ‘Second’, ‘Minute’, ‘Hour’, ‘Day’, ‘Week’, ‘Month’, o ‘Year’.
  3. format (Cadena de texto, opcional): El formato en el que quieres recibir la fecha futura.

Ejemplos prácticos

Ejemplo 1: Recordatorio en una hora Perfecto para pausar un flujo (Delay) hasta un momento específico.

  • Expresión: getFutureTime(1, ‘Hour’)
  • Resultado: 2026-04-24T13:42:14Z (Si ahora son las 12:42 PM).

Ejemplo 2: Fecha de vencimiento en 30 días Ideal para campos de «Fecha de caducidad» en SharePoint o bases de datos.

  • Expresión: getFutureTime(30, ‘Day’, ‘dd/MM/yyyy’)
  • Resultado: 24/05/2026

Ejemplo 3: Próxima revisión anual

  • Expresión: getFutureTime(1, ‘Year’, ‘yyyy-MM-dd’)
  • Resultado: 2027-04-24

La función getPastTime devuelve el sello de tiempo actual menos el intervalo de tiempo que tú le indiques. Es la forma más directa de obtener una fecha de referencia en el pasado partiendo del «ahora». Se utiliza constantemente para buscar registros antiguos, filtrar correos de la última semana o generar reportes de rendimiento de periodos anteriores.

Parámetros requeridos

Requiere dos parámetros (y uno opcional):

  1. interval (Número entero): La cantidad de tiempo que quieres retroceder desde el presente.
  2. unit (Cadena de texto): La unidad de tiempo. Las opciones son: ‘Second’, ‘Minute’, ‘Hour’, ‘Day’, ‘Week’, ‘Month’, o ‘Year’.
  3. format (Cadena de texto, opcional): El formato en el que quieres recibir la fecha (ej: ‘yyyy-MM-dd’).

Ejemplos prácticos

Ejemplo 1: Filtrar archivos de hace una semana Muy útil para flujos que limpian carpetas temporales o revisan tareas pendientes.

  • Expresión: getPastTime(1, ‘Week’)
  • Resultado: 2026-04-17T12:45:00Z (Si hoy es 24 de abril).

Ejemplo 2: Obtener el año anterior para un reporte

  • Expresión: getPastTime(1, ‘Year’, ‘yyyy’)
  • Resultado: 2025

Ejemplo 3: Buscar logs de los últimos 30 minutos Si estás monitoreando errores y solo quieres ver lo que pasó en la última media hora.

  • Expresión: getPastTime(30, ‘Minute’, ‘HH:mm:ss’)
  • Resultado: 12:15:00 (Si ahora son las 12:45 PM).

La función ticks convierte una fecha y hora en un número entero gigante que representa la cantidad de intervalos de 100 nanosegundos que han pasado desde el 1 de enero del año 0001. Es la forma definitiva de convertir el tiempo en un valor numérico puro. Se usa principalmente para comparar qué fecha es mayor que otra, calcular duraciones exactas o generar identificadores únicos basados en el tiempo.

Parámetros requeridos

Requiere exactamente un parámetro:

  1. timestamp (Cadena de texto): La fecha y hora que quieres convertir a ticks.

Dato curioso: Un segundo tiene exactamente 10,000,000 de ticks. Por eso los números que verás son increíblemente largos.

Ejemplos prácticos

Ejemplo 1: Convertir la hora actual a número

  • Expresión: ticks(utcNow())
  • Resultado: Un número parecido a 638495616000000000 (este número crece cada nanosegundo).

Ejemplo 2: Saber qué fecha es más reciente Power Automate a veces tiene problemas comparando fechas como texto. Al convertirlas a números, la comparación es infalible.

  • Expresión: greater(ticks(variables(‘vFechaA’)), ticks(variables(‘vFechaB’)))
  • Resultado: True si la Fecha A es más reciente (un número de ticks mayor) que la Fecha B.

Ejemplo 3: Calcular la diferencia exacta entre dos momentos Si quieres saber cuántos ticks pasaron entre el inicio y el fin de un proceso.

  • Expresión: sub(ticks(outputs(‘Final’)), ticks(outputs(‘Inicio’)))
  • Resultado: La diferencia exacta en nanosegundos (dividida por 100).

Deja un comentario

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo