create - string to datetime python
Convierta un objeto datetime.date en un objeto datetime.datetime con ceros para cualquier atributo de tiempo faltante (1)
¿Hay una función incorporada que convierta un objeto datetime.date en un objeto datetime.datetime con 0 para las cosas que faltan? Por ejemplo, supongamos
tdate = datetime.date(2012,1,31)
Quiero escribir algo como cualquiera de estos
tdatetime = datetime.date.datetime()
tdatetime = datetime.datetime(tdate)
y quiero que la salida sea
datetime.datetime(2012, 1, 31, 0, 0)
Pero ninguno funciona. Hay una función integrada para pasar de datetime.datetime a datetime.date, pero estoy buscando la operación inversa.
Una solución muy pobre sería escribir:
datetime.datetime(tdate.year(), tdate.month(), tdate.day(), 0, 0)
Específicamente quiero evitar esta mala forma de hacerlo.
Ya escribí mi propia pequeña función para hacer esto, pero creo que debería incluirse en el módulo. Está abarrotando algunas importaciones de todo el sistema para usar mi función. Es viable, pero no muy pitónico.
Solo estoy preguntando si alguien sabe si hay una forma eficiente de hacerlo usando solo funciones de módulos de fecha y hora.
Use .combine(date, time)
con una instancia de time
vacía:
>>> import datetime
>>> tdate = datetime.date(2012,1,31)
>>> datetime.datetime.combine(tdate, datetime.time())
datetime.datetime(2012, 1, 31, 0, 0)
Si time.min
utilizar una constante, use time.min
:
>>> datetime.datetime.combine(tdate, datetime.time.min)
datetime.datetime(2012, 1, 31, 0, 0)