> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alvys.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Marcas de tiempo

> Cómo la API Alvys devuelve marcas de tiempo UTC en formato ISO 8601/RFC 3339 y cuándo se utilizan en su lugar valores de tiempo de parada localizados con compensaciones de zona horaria.

Alvys utiliza principalmente dos formatos para manejar valores de fecha y hora en su sistema:

* Marcas de tiempo estándar (basadas en UTC):
  * Almacenado en formato [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) compatible con [RFC 3339](https://tools.ietf.org/html/rfc3339) utilizando objetos `DateTimeOffset`.
  * Siempre devuelto en Tiempo Universal Coordinado (UTC).
* Marcas de tiempo localizadas para casos de uso específicos
  * En algunos casos, como en la normalización de la ubicación, las marcas de tiempo se devuelven en la hora de finalización local del evento.
  * Estas marcas de tiempo incluyen las compensaciones de zona horaria apropiadas para mantener la precisión.

<br />

## Ejemplos de conversiones de fecha y hora

<Info>
  Nota

  Los ejemplos a continuación estarán en el lenguaje de programación Python3; instale las siguientes dependencias antes de ejecutar las funciones.

  [Pytz](https://pypi.org/project/pytz/)\
  [fechautil](https://dateutil.readthedocs.io/en/stable/)\
  [datetime](https://pypi.org/project/DateTime/)
</Info>

La siguiente función convertirá la fecha y hora en formato RFC 3339 a la zona horaria especificada.\
Uso de la función: `convert\_timezone('2025-01-27T07:06:25Z', 'US/Eastern')`

```python theme={null}
def convert_timezone(time_value, target_time_zone):
    """
    Converts time in RFC 3339 format into the specified timezone.
    :param time_value: time in RFC 3339 (Example: '2020-01-27T07:06:25Z')
    :param target_time_zone: Example 'US/Central', 'US/Pacific' etc.)
    :return: converted time in string format

    Function Usage: convert_timezone('2025-01-27T07:06:25Z', 'US/Eastern')
    """
    parsed_t = dp.parse(time_value)
    time_in_seconds = parsed_t.timestamp()
    fmt = '%Y-%m-%d %H:%M:%S %Z%z'
    target_zone = pytz.timezone(target_time_zone)
    time_from_utc = datetime.fromtimestamp(time_in_seconds, tz=timezone.utc)
    time_from = time_from_utc.astimezone(target_zone)
    time_from.strftime(fmt)
    time_to_utc = datetime.fromtimestamp(time_in_seconds, tz=timezone.utc)
    converted_time = time_to_utc.astimezone(tz=pytz.timezone(target_time_zone))
    return converted_time
```
