Hoy vamos a aprender como convertir una variable string a datetime.
Supongamos que tenemos una fecha en una variable string como la siguiente:
Sep 13 2012 11:00PM
Supongamos que deseamos convertir este string en una variable datetime por ejemplo para añadir dicha fecha a nuestra base de datos en un campo DateField, para ello tenemos diferentes opciones, aquí veremos las más comunes
Opción 1 - Usando la librería datetime
from datetime import datetime
date_string = 'Sep 13 2012 11:00PM'
date_object = datetime.strptime(date_string, '%b %d %Y %I:%M%p')
- %b: Mes en formato reducido
- %d: Día en formato número de dos dígitos
- %Y: Año en formato de 4 dígitos
- %I: Hora en formato corto (0-12)
- %M: Minutos en formato dos dígitos (0-60)
- %p: AM o PM
Para otros formatoś como día de la semana, horas de 24h, años de dos dígitos etc... tenemos la documentación oficial de Python con todos los formatos posibles Python: librería datetime y formatos
Opción 2: Usando la librería externa dateutil - parser
from dateutil import parser
date_string = 'Sep 13 2012 11:00PM'
date_object = parser.parse(date_string)
Para instalar esta librería: pip install dateutil
Para mas información sobre la librería dateutil y parser debemos ir a Python dateutil
Opción 3: Usando la librería externa timestring
import timestring
date_string = 'Sep 13 2012 11:00PM'
date_object = timestring.Date(date_string)
Para instalar esta librería: pip install timestring
Esta librería no devuelve un objeto datetime si no un objeto TimeString, pero se puede convertir entre ambos sin problema.
Para mas información sobre la librería timestring debemos ir a Github: TimeString
Cualquier duda no dudeis en comentar !