today sistema poner partir obtener incrementar importar hora fecha crear convertir como capturar actual python datetime date

sistema - python importar fecha



Convertir fecha a fecha y hora en Python (10)

Hay varias formas, aunque creo que la que usted menciona (y no le gusta) es la más legible.

>>> t=datetime.date.today() >>> datetime.datetime.fromordinal(t.toordinal()) datetime.datetime(2009, 12, 20, 0, 0) >>> datetime.datetime(t.year, t.month, t.day) datetime.datetime(2009, 12, 20, 0, 0) >>> datetime.datetime(*t.timetuple()[:-4]) datetime.datetime(2009, 12, 20, 0, 0)

y así sucesivamente, pero básicamente, todos dependen de la extracción apropiada de información del objeto de la date y de su arado de nuevo en la función de clase o ctor adecuada para datetime .

Pregunta tonta, pero hay un método incorporado para convertir una date a una datetime y datetime en Python, es decir. obtener la datetime y datetime para la medianoche de la date ? La conversión opuesta es fácil: datetime tiene un método .date() . ¿Realmente tengo que llamar manualmente a datetime(d.year, d.month, d.day) ?


Hoy siendo 2016, creo que la solución más limpia es proporcionada por pandas Timestamp:

from datetime import date import pandas as pd d = date.today() pd.Timestamp(d)

La marca de tiempo es el equivalente de pandas de datetime y es intercambiable con él en la mayoría de los casos. Comprobar:

from datetime import datetime isinstance(pd.Timestamp(d), datetime)

Pero en caso de que realmente desee una fecha de vainilla, todavía puede hacer:

pd.Timestamp(d).to_datetime()

Las marcas de tiempo son mucho más poderosas que las fechas de referencia, entre otras cuando se trata de zonas horarias. En realidad, las marcas de tiempo son tan poderosas que es una pena que estén tan mal documentadas ...


La respuesta aceptada es correcta, pero preferiría evitar usar datetime.min.time() porque no es obvio para mí exactamente lo que hace. Si es obvio para ti, entonces más poder para ti. También siento lo mismo sobre el método de timetuple y la confianza en el orden.

En mi opinión, la forma más legible y explícita de hacer esto sin confiar en que el lector esté muy familiarizado con el módulo API de datetime es:

from datetime import date, datetime today = date.today() today_with_time = datetime( year=today.year, month=today.month, day=today.day, )

Esa es mi opinión de que "explícito es mejor que implícito".


Puede usar datetime.combine (fecha, hora); para el momento, creas un objeto datetime.time inicializado a medianoche.

from datetime import date from datetime import datetime d = date.today() datetime.combine(d, datetime.min.time())


Puede usar el método date.timetuple() y desempaquetar el operador * .

args = d.timetuple()[:6] datetime.datetime(*args)


Puedes usar easy_date para hacerlo más fácil:

import date_converter my_datetime = date_converter.date_to_datetime(my_date)


Si necesita algo rápido, datetime_object.date() le da una fecha de un objeto datetime.


Soy un novato en Python. Pero este código funcionó para mí, que convierte la entrada especificada que proporciono a datetime. Aquí está el código. Corrígeme si me equivoco.

import sys from datetime import datetime from time import mktime, strptime user_date = ''02/15/1989'' if user_date is not None: user_date = datetime.strptime(user_date,"%m/%d/%Y") else: user_date = datetime.now() print user_date


Una forma de convertir de fecha a fecha y hora que no se ha mencionado aún:

from datetime import date, datetime d = date.today() datetime.strptime(d.strftime(''%Y%m%d''), ''%Y%m%d'')


Usando pandas para convertir una serie de fechas a fechas de tiempo de python:

dates = pd.DataFrame( {''date'': pd.DatetimeIndex(start=''2017-01-01'', end=''2017-01-5'', freq=''D'')}) >>> dates date 0 2017-01-01 1 2017-01-02 2 2017-01-03 3 2017-01-04 4 2017-01-05 >>> pd.DatetimeIndex(dates[''date'']).to_pydatetime().tolist() [datetime.datetime(2017, 1, 1, 0, 0), datetime.datetime(2017, 1, 2, 0, 0), datetime.datetime(2017, 1, 3, 0, 0), datetime.datetime(2017, 1, 4, 0, 0), datetime.datetime(2017, 1, 5, 0, 0)]

Uno puede necesitar primero convertir las fechas:

dates = pd.DataFrame( {''date'': [''2017-01-01'', ''2017-01-02'', ''2017-01-03'', ''2017-01-04'', ''2017-01-05'']}) dates[''date''] = pd.DatetimeIndex(dates[''date'']) pd.DatetimeIndex(dates[''date'']).to_pydatetime().tolist()