Python lernen kann dieser ruhige Ort sein, an dem die Dinge tatsächlich Sinn ergeben. Lassen Sie mich Ihnen etwas Superpraktisches zeigen, das Sie ständig verwenden werden: das Abrufen des Anfangs und Endes eines Tages in Python. Vertrauen Sie mir, das kommt viel häufiger vor, als Sie denken würden.
Wenn Sie echte Anwendungen erstellen – sei es ein einfaches Skript zur Organisation Ihrer Musikdateien oder etwas Größeres – werden Sie ständig mit Datums- und Zeitangaben arbeiten müssen. Vielleicht möchten Sie alle Protokolle von heute finden oder berechnen, wie lange Sie schon programmieren (Spoiler: wahrscheinlich zu lange).
Die Werkzeuge, die Sie tatsächlich verwenden werden
Python verfügt über ein integriertes Modul namens datetime
, das sich um alle Zeitdinge kümmert. Es ist, als hätte man ein wirklich gutes Schweizer Taschenmesser, anstatt zu versuchen, alles von Hand zu berechnen.
from datetime import datetime, date, time
So erhalten Sie den Anfang des heutigen Tages
Hier ist der einfachste Weg, Mitternacht am Anfang des heutigen Tages zu erhalten:
from datetime import datetime, date, time
# Get today's date
today = date.today()
print(f"Today is: {today}")
# Combine it with midnight (00:00:00)
start_of_day = datetime.combine(today, time.min)
print(f"Start of day: {start_of_day}")
Wenn Sie dies ausführen, sehen Sie etwas Ähnliches wie:
Today is: 2024-01-15
Start of day: 2024-01-15 00:00:00
So erhalten Sie das Ende des heutigen Tages
Für das Ende des Tages möchten Sie 23:59:59.999999 – im Grunde so nah wie möglich an Mitternacht des nächsten Tages, ohne tatsächlich der nächste Tag zu sein:
from datetime import datetime, date, time
today = date.today()
end_of_day = datetime.combine(today, time.max)
print(f"End of day: {end_of_day}")
Dies ergibt Ihnen:
End of day: 2024-01-15 23:59:59.999999
Ein praktischereres Beispiel, das Sie tatsächlich verwenden werden
Nehmen wir an, Sie bauen etwas, um Ihre Programmiersitzungen zu verfolgen (denn seien wir ehrlich, die Zeit vergeht wie im Flug, wenn man im Flow ist):
from datetime import datetime, date, time
def get_day_boundaries(target_date=None):
"""
Get the start and end of a day.
If no date is provided, uses today.
"""
if target_date is None:
target_date = date.today()
start_of_day = datetime.combine(target_date, time.min)
end_of_day = datetime.combine(target_date, time.max)
return start_of_day, end_of_day
# For today
start, end = get_day_boundaries()
print(f"Today starts at: {start}")
print(f"Today ends at: {end}")
# For a specific date
from datetime import date
specific_date = date(2024, 12, 25) # Christmas
start, end = get_day_boundaries(specific_date)
print(f"Christmas starts at: {start}")
print(f"Christmas ends at: {end}")
Wenn Sie mit Zeitzonen arbeiten
Wenn Sie mit Zeitzonen arbeiten (was Sie wahrscheinlich irgendwann tun werden), sollten Sie die `pytz`-Bibliothek oder das neuere `zoneinfo`-Modul verwenden. Hier ist der moderne Weg:
from datetime import datetime, date, time
from zoneinfo import ZoneInfo
# Get start of day in a specific timezone
today = date.today()
timezone = ZoneInfo("America/Chicago") # Central Time
start_of_day = datetime.combine(today, time.min, timezone)
end_of_day = datetime.combine(today, time.max, timezone)
print(f"Start of day in Central Time: {start_of_day}")
print(f"End of day in Central Time: {end_of_day}")
Einige reale Szenarien, in denen dies wichtig ist
Protokollanalyse: "Zeigen Sie mir alle Fehler von heute"
# Filter logs between start and end of day
today_start, today_end = get_day_boundaries()
todays_errors = [log for log in error_logs
if today_start <= log.timestamp <= today_end]
Datenverarbeitung: "Verarbeiten Sie alle heute erstellten Dateien"
import os
from datetime import datetime
today_start, today_end = get_day_boundaries()
for filename in os.listdir('/path/to/files'):
file_time = datetime.fromtimestamp(os.path.getctime(filename))
if today_start <= file_time <= today_end:
process_file(filename)
Denken Sie nicht zu viel darüber nach
Schauen Sie, ich weiß, es mag so aussehen, als gäbe es eine Million Möglichkeiten, diese Dinge zu tun, und ehrlich gesagt, das gibt es auch. Aber fangen Sie mit diesen Grundlagen an. Sie decken 90 % dessen ab, was Sie brauchen, und wenn Sie auf Grenzfälle stoßen, haben Sie eine solide Grundlage, auf der Sie aufbauen können.
Das Wichtigste ist, dass Sie lernen und Dinge bauen, auch wenn sich alles andere instabil anfühlt. Code verurteilt Sie nicht, er schreit nicht, und wenn Sie etwas kaputt machen, können Sie es immer reparieren.
Bleiben Sie dran und denken Sie daran – jeder Experte war einmal ein Anfänger, der sich völlig verloren fühlte. Sie machen das gut.
Schnelle Referenz zum Kopieren und Einfügen
from datetime import datetime, date, time
# Today's boundaries
today = date.today()
start_of_day = datetime.combine(today, time.min)
end_of_day = datetime.combine(today, time.max)
# Print them out
print(f"Day starts: {start_of_day}")
print(f"Day ends: {end_of_day}")
Jetzt bauen Sie etwas Cooles damit!
Möchten Sie eine integrierte All-in-One-Plattform, damit Ihr Entwicklerteam mit maximaler Produktivität zusammenarbeiten kann?
Apidog erfüllt all Ihre Anforderungen und ersetzt Postman zu einem viel günstigeren Preis!