Gibt es eine integrierte Methode zur Konvertierung einer date
zu einer datetime
in Python, zum Beispiel das Abrufen der datetime
für die Mitternacht des angegebenen Datums? Die umgekehrte Umrechnung ist einfach: datetime
hat eine .date()
Methode.
Muß ich wirklich manuell die datetime(d.year, d.month, d.day)
?
218 Stimmen
Keine dumme Frage; Datumsobjekte sollten eine
.datetime()
Methode; dumm ist nur, dass sie eine solche Methode nicht haben.25 Stimmen
@Zags: oder
datetime.from_date()
Konstrukteur.15 Stimmen
Nein, es sollte nicht ein Datum ist eine Teilmenge von datetime (es ist sogar im Namen). Es ist eindeutig, was das Datum von einer datetime ist. Aber andersherum ist ein Datum ein Block von 24 Stunden (normalerweise), also kann es viele Datumszeiten haben. Welche Datumszeit würde aus einem Datum entstehen? Man kann nicht immer 00:00 nehmen, denn was ist, wenn es diese Zeit nicht gibt, z. B. weil die Sommerzeit sie übersprungen hat? Nicht so einfach#
7 Stimmen
@Dalore Die Sommerzeit liegt zwischen 1 und 2 Uhr morgens, um genau das von Ihnen beschriebene Problem zu vermeiden.
3 Stimmen
@zags es hängt alles von der Zeitzone Quelle und Ziel, können Sie eine Sommerzeit Änderung um 1 Uhr haben, aber das würde zu einer Mitternacht Änderung in einer anderen Zeitzone entsprechen. und wenn Sie programmieren, welche Zeitzone Sie verwenden? Sie könnten sehr gut am Ende versuchen, eine Zeit zu erhalten, die nicht existiert. Mein Standpunkt ist immer noch, dass das Hinzufügen einer Zeit zu einem Datum nicht einfach ist. Dann müssen Sie auch zu prüfen, ist Ihre neue datetime auch Zeitzone bewusst oder naiv.
0 Stimmen
Dumme Frage: Dieses Problem kann auftreten, wenn Sie Datum mit einem .date am Ende parsen, wie viele Beispiele in diesem Forum zeigen. Stattdessen überspringen Sie dieses .date() und Sie können direkt Datumsvergleiche durchführen wie: ''' import datetime.datetime def is_date_earlier_than_date(d1, d2, parse_format) d1_time_obj = datetime.strptime(d1, parse_format) d2_time_obj = datetime.strptime(d2, parse_format) return d1_time_obj < d2_time_obj '''
0 Stimmen
@dalore, würde nicht jede andere Methode, die verwendet wird, um eine datetime aus einem Datum zu konstruieren, das gleiche Problem haben?