La conversión de un tipo de datos a otro tipo de datos es crucial en cualquier lenguaje de programación. Casi todos los lenguajes de programación admiten conversiones de tipo para tipos de datos integrados.
Los tipos de datos personalizados, como la fecha y la hora, requieren módulos adicionales para las conversiones. Necesitamos módulos, especialmente para datetime
conversiones porque trabajar en ellas nunca ha sido fácil para los programadores. Afortunadamente, Python tiene módulos incorporados para trabajar con fecha y hora.
Aprenderemos a convertir un datetime
cadena a uno datetime
objeto en Python usando diferentes módulos. Antes de saltar a eso, veamos por qué necesitamos convertirlo en primer lugar.
¿Por qué necesitamos convertir una cadena de fecha y hora en un objeto de fecha y hora?
Cuando tenemos que trabajar con fechas, no es fácil trabajar si están en formato de cadena. Su conversión a formato de fecha y hora hace que su uso sea muy sencillo. Las fechas en cadenas son como cadenas normales. No tendrá ningún método especial para trabajar con fechas. Tendrá métodos de cadena generales, que no necesitaremos cuando trabajemos con fechas.
Digamos que necesitamos comparar dos fechas. Si están en formato de cadena, podemos compararlos correctamente. si están en datetime
formato, podemos usar operadores de comparación como números.
Este es solo un escenario en el que la conversión a datetime
el formato lo hace fácil. Hay muchos escenarios como agregar fechas, restar, administrar zonas horarias, etc., donde la conversión datetime
cadena a datetime
objeto nos hace la vida más fácil que nunca.
Dicho esto, veamos diferentes formas de convertir un datetime
cadena a uno datetime
objeto. Usaremos la función integrada. datetime
y terceros dateutil
módulos para convertir datetime
cadena a datetime
objeto. Comencemos con el módulo de fecha y hora.
Uso de fecha y hora.
el datetime
es un módulo integrado de Python que se utiliza para trabajar con fechas y horas. Hay muchas clases en este módulo que nos ayudan a trabajar con fechas y horas. vamos a usar datetime.datetime
clase para la conversión.
el datetime.datetime
tiene muchos métodos. Estamos interesados en strptime
método que nos ayudará en la conversión. Vamos a revisar.
fechahora.strptime
el datetime.strptime
método se utiliza para convertir datetime
cadena a uno datetime
objeto. Se necesitan dos cuerdas, una es datetime
cadena y el otro es el formato de la misma datetime
cadena de caracteres Y él devuelve el datetime
objeto.
Veamos un ejemplo
from datetime import datetime
string = "19-12-2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"
print(datetime.strptime(string, formatting))
Si ejecuta el código anterior, verá el siguiente resultado.
2022-12-19 21:37:56
tomamos un datetime
string y lo convertimos a datetime
objeto usando datetime.strptime
método. Asegúrese de que el formato que proporcione al método coincida exactamente con el datetime
cadena de caracteres Si no coinciden, es posible que obtenga un error o una salida incorrecta.
Utilizamos códigos de formato para el datetime
formato. Puedes ver todo códigos de formato en documentos.
el datetime.strptime
el método devuelve completo datetime
. Si desea obtener la fecha y la hora por separado, podemos usar la fecha time
Métodos de datetime
objeto. Veamos el código.
from datetime import datetime
string = "19-12-2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"
## getting date separately
print("Date:", datetime.strptime(string, formatting).date())
## getting time separately
print("Time:", datetime.strptime(string, formatting).time())
Ejecute el código anterior y verá el siguiente resultado.
Date: 2022-12-19
Time: 21:37:56
Los métodos date
y time
devolverán sus objetos respectivamente. Volverán a tener sus respectivos métodos para fechas y horas.
Hemos proporcionado las cadenas y los formatos correctos para el datetime.strptime
método que vimos arriba. Si no los proporcionamos correctamente, obtendremos errores. Veamos cómo manejar estos errores. Ejecute el siguiente código.
from datetime import datetime
string = "19:12:2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"
print(datetime.strptime(string, formatting))
El código anterior generará un error porque el formato no coincide con el datetime
cadena de caracteres Para manejar este tipo de errores, podemos usar Pythons try-except. Vamos a agregarlo.
from datetime import datetime
try:
string = "19:12:2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"
print(datetime.strptime(string, formatting))
except ValueError as error:
print(error)
Ahora ejecuta el código de nuevo. Verá el siguiente mensaje de error sin descifrar el código.
time data '19:12:2022 09:37:56 PM' does not match format '%d-%m-%Y %I:%M:%S %p'
De manera similar, podemos agregar el intento, excepto por el siguiente parser.parse
método también. Esto nos ayuda a evitar romper el código en el medio. No está relacionado específicamente con el contexto de este tutorial, pero le recordará usarlo en su código.
Eso es todo por el datetime
módulo. vamos al siguiente modulo dateutil
.
Usando dateutil
El módulo dateutil
proporciona extensiones a datetime
módulo. Hace que trabajar con fechas y horas sea mucho más fácil con muchos métodos fáciles de usar. Instalemos el módulo con el siguiente comando.
pip install python-dateutil
El método que nos interesa es dateutil.parser.parse
. Veamos cómo convertir datetime
cadena a datetime
objeto.
analizador.parser
El método parser.parse
Tomar un datetime
cadena y la convierte en una respectiva datetime
formato de objeto No necesitamos proporcionar ningún formato para este método. Automáticamente convertirá el dado datetime
cadena en datetime
objeto. Veamos un ejemplo.
from dateutil import parser
string = "19-12-2022 09:37:56 PM"
print(parser.parse(string))
Si ejecuta el código anterior, verá el siguiente resultado.
2022-12-19 21:37:56
el datetime
cadena debe estar en un formato particular que el parser.parse
método acepta. Lanzará un error si el datetime
el formato de cadena no se ajusta al formato deseado. Ustedes puede verificar todos los formatos de cadena de fecha y hora que acepta para conversiones automáticas.
Como el parser.parse
el método regresa datetime
objeto, podemos acceder date
y time
objetos por separado como vimos con el datetime
módulo. Veamos el código.
from dateutil import parser
string = "19-12-2022 09:37:56 PM"
print("Date:", parser.parse(string).date())
print("Time:", parser.parse(string).time())
Puede ver el resultado a continuación si ejecuta el código anterior.
Date: 2022-12-19
Time: 21:37:56
Como podéis ver dateutil
hace que sea más fácil trabajar con fechas y horas comparativamente. Puede explorar el módulo en el documentos.
Conclusión
Utilizamos un módulo incorporado y un módulo de terceros para convertir el datetime
cadena a un objeto DateTime. Hay otro módulo incorporado llamado time
con el que podemos convertir datetime
cadena a un objeto DateTime similar a datetime
y dateutil
mods. Inténtalo tú mismo. No será difícil porque ya has hecho lo mismo con otros módulos.
Puede haber más bibliotecas con las que podamos lograr lo mismo. Los módulos que usamos en el tutorial Thing son estándar y ampliamente utilizados. Puede obtener más información sobre los otros módulos y elegir el que más le convenga.
También puede explorar cómo calcular la diferencia horaria en python.
Buena codificación 🙂
Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.
Direcciones de Billetera:
- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS
- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe
- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f
- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx
También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:
- Telegram
Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones