example create python date datetime python-datetime

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)