Logotipo de Zephyrnet

Python DateTime – Función strptime()

Fecha:

Introducción

La manipulación y manejo de fecha y hora en la programación son esenciales para diversas aplicaciones. Python, al ser un lenguaje de programación versátil, ofrece un módulo DateTime robusto que simplifica el trabajo con fechas y horas. Una función crucial dentro del módulo DateTime es strptime(), que significa "tiempo de análisis de cadenas". En esta publicación de blog, profundizaremos en los detalles de la función strptime() y exploraremos cómo puede ser una herramienta poderosa para analizar cadenas en objetos DateTime.

Python DateTime - Función strptime()

Tabla de contenidos.

Entendiendo la función `strptime()`

La función `strptime()` en el módulo DateTime de Python se utiliza para analizar una cadena que representa una fecha y hora y convertirla en un objeto DateTime. Se necesitan dos argumentos: la cadena que se va a analizar y el formato de la cadena.

El formato de cadena se especifica mediante directivas de formato, que son marcadores de posición que representan diferentes componentes de fecha y hora. Estas directivas de formato se utilizan para extraer la información relevante de la cadena y crear un objeto DateTime.

Directivas de formato para `strptime()`

La función `strptime()` utiliza varias directivas de formato para especificar el formato de la cadena. A continuación se muestran algunas directivas de formato de uso común:

1. `%Y` – Año: Esta directiva representa el año en cuatro dígitos. Por ejemplo, "%Y" analizará el año como "2022".

2. `%m` – Mes: Esta directiva representa el mes en dos dígitos. Por ejemplo, "%m" analizará el mes como "01" para enero.

3. `%d` – Día: Esta directiva representa el día en dos dígitos. Por ejemplo, "%d" analizará el día como "01".

4. `%H` – Hora: Esta directiva representa la hora en formato de 24 horas. Por ejemplo, "%H" analizará la hora como "13" para la 1 p. m.

5. `%M` – Minuto: Esta directiva representa el minuto en dos dígitos. Por ejemplo, "%M" analizará el minuto como "30".

6. `%S` – Segundo: Esta directiva representa la segunda en dos dígitos. Por ejemplo, "%S" analizará el segundo como "45".

7. `%A` – Día laborable (Nombre completo): Esta directiva representa el nombre completo del día de la semana. Por ejemplo, "%A" analizará el día de la semana como "lunes".

8. `%a` – Día laborable (Abreviatura): Esta directiva se utiliza para representar la abreviatura del día de la semana. Por ejemplo, "%a" analizará el día de la semana como "lunes".

9. `%B` – Mes (Nombre completo): Esta directiva representa el nombre completo del mes. Por ejemplo, "%B" analizará el mes como "enero".

10. `%b` – Mes (Abreviatura): Esta directiva representa la abreviatura del mes. Por ejemplo, "%b" analizará el mes como "enero".

11. `%p` – Indicador AM/PM: Esta directiva representa el indicador AM/PM. Por ejemplo, "%p" analizará el indicador como "AM" o "PM".

12. `%Z` – Zona horaria: Esta directiva representa la zona horaria. Por ejemplo, "%Z" analizará la zona horaria como "UTC" o "GMT".

Ejemplos de uso de `strptime()`

Convertir una cadena en un objeto DateTime de Python

Supongamos que tenemos una representación de cadena de una fecha y hora: '2022-01-01 13:30:45'. Podemos usar la función `strptime()` para convertir esta cadena en un objeto DateTime de la siguiente manera:

Código:

from datetime import datetime
date_string = '2022-01-01 13:30:45'
date_object = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(date_object)

Salida:

2022-01-01 13:30:45

Manejo de diferentes formatos de fecha

La función `strptime()` puede manejar diferentes formatos de fecha. Digamos que tenemos una representación de cadena de una fecha en el formato '01-enero-2022'. Podemos usar la función `strptime()` con la directiva de formato apropiada para convertir esta cadena en un objeto DateTime:

Código:

from datetime import datetime
date_string = '01-Jan-2022'
date_object = datetime.strptime(date_string, '%d-%b-%Y')
print(date_object)

Salida:

2022-01-01 00:00:00

Analizando zonas horarias con `strptime()`

La función `strptime()` también puede analizar zonas horarias. Digamos que tenemos una representación de cadena de una fecha y hora con una zona horaria: "2022-01-01 13:30:45 UTC". Podemos usar la función `strptime()` con la directiva de formato apropiada para convertir esta cadena en un objeto DateTime:

Código:

from datetime import datetime
date_string = '2022-01-01 13:30:45 UTC'
date_object = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S %Z')
print(date_object)

Salida:

2022-01-01 13:30:45+00:00

`ValueError: Quedan datos sin convertir`

A veces, al utilizar la función `strptime()`, puede encontrar un ValueError con el mensaje "Quedan datos sin convertir". Este error se produce cuando los datos adicionales de la cadena no se convierten según el formato especificado. Para corregir este error, asegúrese de que el formato coincida exactamente con la cadena.

Código:

from datetime import datetime
date_string = '2022-01-01 13:30:45 ExtraData'
try:
    date_object = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
    print(date_object)
except ValueError as e:
    print(f"Error: {e}")

Salida:

Error: quedan datos sin convertir: ExtraData

`ValueError: los datos de tiempo '…' no coinciden con el formato '…'`

Otro error común es el ValueError con el mensaje "los datos de tiempo '...' no coinciden con el formato '..."'. Este error ocurre cuando la cadena no coincide con el formato especificado. Vuelva a verificar el formato y la cadena para asegurarse de que sean compatibles.

Código:

from datetime import datetime
date_string = '01-01-2022'
try:
    date_object = datetime.strptime(date_string, '%Y-%m-%d')
    print(date_object)
except ValueError as e:
    print(f"Error: {e}")

Salida:

Error: los datos de hora '01-01-2022' no coinciden con el formato '%Y-%m-%d'

Manejo de fechas u horas no válidas

La función `strptime()` no maneja fechas u horas no válidas de forma predeterminada. Si pasa una fecha u hora no válida, generará un ValueError. Puede utilizar el manejo de excepciones con un bloque try-except para manejar fechas u horas no válidas.

Código:

from datetime import datetime
date_string = '2022-02-30'
try:
    date_object = datetime.strptime(date_string, '%Y-%m-%d')
    print(date_object)
except ValueError as e:
    print(f"Error: {e}")

Salida:

Error: el día está fuera del rango del mes

Función strptime()

Mejores prácticas y consejos para usar `strptime()`

Especificación del formato correcto

Cuando se utiliza la función `strptime()`, es crucial especificar el formato correcto para la cadena. Asegúrese de hacer coincidir las directivas de formato con los componentes correspondientes en la cadena. No hacerlo puede resultar en un análisis incorrecto o ValueError.

Manejo de fechas ambiguas

Las fechas ambiguas, como ’01-02-2022′, se pueden interpretar de manera diferente según el formato de fecha. Para evitar ambigüedades, se recomienda utilizar formatos de fecha inequívocos o proporcionar contexto adicional para aclarar la fecha.

Lidiar con las diferencias de zona horaria

Al analizar cadenas con zonas horarias, es esencial tener en cuenta las diferencias entre zonas horarias. Asegúrese de que el objeto DateTime esté en la zona horaria correcta o conviértalo a la zona horaria deseada utilizando los métodos adecuados.

Conclusión

La función `strptime()` en el módulo DateTime de Python es una poderosa herramienta para convertir representaciones de cadenas de fechas y horas en objetos DateTime. Al comprender las directivas de formato y seguir las mejores prácticas, puede analizar y manipular eficazmente fechas y horas en sus programas Python.

¿Listo para embarcarse en un viaje para dominar Python y profundizar en los apasionantes ámbitos de la inteligencia artificial y el aprendizaje automático? Únete a nuestro Programa certificado AI y ML BlackBelt Plus ¡hoy! Ya sea que sea un principiante ansioso por comenzar su viaje en programación o un desarrollador experimentado que busque mejorar sus habilidades, nuestro programa integral se adapta a todos los niveles. Obtenga experiencia práctica, reciba orientación de expertos y libere el potencial de Python en los campos dinámicos de la IA y el aprendizaje automático. No pierda esta oportunidad de convertirse en un Python AI & ML BlackBelt certificado: ¡inscríbase ahora y dé el primer paso hacia una carrera gratificante y preparada para el futuro!

punto_img

Información más reciente

punto_img