

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Time-based políticas
<a name="example-policies-time-based"></a>

Las políticas de esta sección se deciden **en función del horario** habitual: una promoción, un horario comercial o una combinación de ambos. Leen`context.system.now`, que el servicio proporciona en cada solicitud.

Time-based Las condiciones son `when` cláusulas de Cedar ordinarias, por lo que se redactan junto con todo lo demás que aparece en estas páginas. Una verificación principal, una condición de entrada, una barrera o una condición temporal pueden estar incluidas en la misma póliza.

Al igual que el resto de la guía de creación, estos ejemplos se han escrito utilizando la pasarela de referencia descrita en la sección [Configuración de recursos, como ejemplos, para](example-policies-reference.md) que pueda combinarlos con los demás ejemplos en un solo motor de políticas.

**nota**  
Time-based no es lo mismo que **temporal**. Una condición basada en el tiempo pregunta qué hora es ahora; una condición temporal pregunta qué es lo que ya ha sucedido en esta sesión. Para obtener más información, consulte [Ejemplos de políticas temporales](example-policies-temporal.md).

## Funcionamiento
<a name="example-policies-time-based-how"></a>

Durante la evaluación de la política, se proporciona la marca de tiempo UTC actual como parte del contexto de la evaluación:

```
// Current datetime in UTC
context.system.now
```

Puede utilizar las funciones de fecha y hora de Cedar para crear condiciones basadas en el tiempo:
+  `datetime("YYYY-MM-DDTHH:MM:SSZ")`— Crea un valor de fecha y hora
+  `duration("Xh")`— Crear una duración (horas, minutos, segundos)
+  `.toTime()`— Extrae la hora del día a partir de la fecha y hora
+ Operadores de comparación:`<`,,,`⇐`, `>` `>=` `==` 

## Restricciones absolutas de intervalo de fecha y hora
<a name="example-policies-time-absolute"></a>

Haga cumplir las políticas dentro de períodos de calendario específicos.

### Ejemplo: Open-enrollment ventana
<a name="example-policies-time-absolute-example"></a>

```
permit (
  principal,
  action == AgentCore::Action::"InsuranceAPI___calculate_premium",
  resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5"
)
when {
  context.system.now >= datetime("2025-01-01T00:00:00Z") &&
  context.system.now < datetime("2025-02-01T00:00:00Z")
};
```

 **Caso de uso:** cotice las primas solo durante el período de inscripción abierta de enero de 2025.

## Restricciones horarias periódicas diarias
<a name="example-policies-time-daily"></a>

Aplica las políticas en función de la hora del día que se repiten a diario.

### Ejemplo: política de horario comercial
<a name="example-policies-time-daily-example"></a>

```
permit (
  principal,
  action == AgentCore::Action::"InsuranceAPI___disburse_payment",
  resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5"
)
when {
  duration("9h") <= context.system.now.toTime() &&
  context.system.now.toTime() <= duration("17h")
};
```

 **Caso práctico:** desembolse los pagos únicamente durante el horario laboral (todos los días de 9:00 a 17:00 UTC).

## Restricciones combinadas de fecha y hora
<a name="example-policies-time-combined"></a>

Combine fechas absolutas con restricciones horarias diarias.

### Ejemplo: ventana de inscripción con horario diario
<a name="example-policies-time-combined-example"></a>

```
permit (
  principal,
  action == AgentCore::Action::"InsuranceAPI___update_coverage",
  resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5"
)
when {
  // Valid dates: February 2025
  context.system.now >= datetime("2025-02-01T00:00:00Z") &&
  context.system.now < datetime("2025-03-01T00:00:00Z") &&
  // Valid hours: 9am-9pm UTC daily
  duration("9h") <= context.system.now.toTime() &&
  context.system.now.toTime() <= duration("21h")
};
```

 **Caso práctico:** permite los cambios de cobertura solo durante febrero de 2025, entre las 9 a.m. y las 9 p.m. UTC todos los días.

## Manejo de zonas horarias
<a name="example-policies-time-timezone"></a>

Todos los valores de fecha y hora deben estar en UTC. El motor de políticas no admite conversiones de zonas horarias ni políticas que tengan en cuenta las zonas horarias.

Cuando especifiques las horas en tus políticas, utiliza siempre UTC. Si tu empresa opera en una zona horaria diferente, convierte la hora local a UTC antes de crear la política.