Konvertieren Sie Datum in Datetime in Python


Answers

Es gibt mehrere Möglichkeiten, obwohl ich glaube, dass der, den Sie erwähnen (und nicht mögen), der am besten lesbare ist.

>>> 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)

und so weiter - aber im Grunde genommen sind sie alle darauf angewiesen, die Informationen aus dem Datumsobjekt entsprechend zu extrahieren und sie für die date und date wieder in die geeignete Kern- oder Klassenfunktion datetime .

Question

Dumme Frage, aber gibt es eine eingebaute Methode zum Konvertieren eines date in eine datetime in Python, dh. die datetime für die Mitternacht des date ? Die umgekehrte Konvertierung ist einfach - datetime hat eine .date() -Methode. Muss ich datetime(d.year, d.month, d.day) wirklich manuell aufrufen?




Sie können easy_date , um es einfach zu machen:

import date_converter
my_datetime = date_converter.date_to_datetime(my_date)



Verwenden von Pandas zum Konvertieren einer Reihe von Datumsangaben in Python-Datumsangaben:

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)]

Möglicherweise müssen Sie zuerst die Daten konvertieren:

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()



Ich bin ein Neuling für Python. Aber dieser Code funktionierte für mich, der die angegebene Eingabe konvertiert, die ich für datetime bereitstelle. Hier ist der Code. Korrigiere mich, wenn ich falsch liege.

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



Sie können die Methode temple () und varargs verwenden.

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



Links