Comment obtenir le début ou la fin d'une journée en Python

Lynn Mikami

Lynn Mikami

6 June 2025

Comment obtenir le début ou la fin d'une journée en Python

Apprendre Python peut être cet espace tranquille où les choses prennent vraiment sens. Laissez-moi vous présenter quelque chose de super pratique que vous utiliserez tout le temps : obtenir le début et la fin d'une journée en Python. Croyez-moi, cela arrive bien plus souvent que vous ne le pensez.

Lorsque vous construisez des applications réelles - qu'il s'agisse d'un simple script pour organiser vos fichiers musicaux ou de quelque chose de plus grand - vous aurez constamment besoin de travailler avec les dates et les heures. Peut-être voulez-vous trouver tous les journaux d'aujourd'hui, ou calculer depuis combien de temps vous codez (spoiler : probablement trop longtemps).

Les Outils Que Vous Utiliserez Vraiment

Python dispose d'un module intégré appelé datetime qui gère tout ce qui concerne le temps. C'est comme avoir un excellent couteau suisse au lieu d'essayer de tout calculer à la main.

from datetime import datetime, date, time

Comment Obtenir le Début d'Aujourd'hui

Voici la manière la plus simple d'obtenir minuit au début d'aujourd'hui :

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

Lorsque vous exécutez ceci, vous verrez quelque chose comme :

Today is: 2024-01-15
Start of day: 2024-01-15 00:00:00

Comment Obtenir la Fin d'Aujourd'hui

Pour la fin de la journée, vous voulez 23:59:59.999999 - en gros, aussi près que possible de minuit demain sans être réellement demain :

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

Ceci vous donne :

End of day: 2024-01-15 23:59:59.999999

Un Exemple Plus Pratique Que Vous Utiliserez Vraiment

Disons que vous construisez quelque chose pour suivre vos sessions de codage (car soyons honnêtes, le temps passe vite quand on est dans la zone) :

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

Lorsque Vous Travaillez Avec les Fuseaux Horaires

Si vous travaillez avec des fuseaux horaires (ce qui arrivera probablement un jour), vous voudrez utiliser la bibliothèque pytz ou le module plus récent zoneinfo. Voici la manière moderne :

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

Quelques Scénarios Concrets Où Cela Est Important

Analyse des journaux : "Montrez-moi toutes les erreurs d'aujourd'hui"

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

Traitement des données : "Traitez tous les fichiers créés aujourd'hui"

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)

Ne Compliquez Pas Trop

Écoutez, je sais qu'il peut sembler y avoir un million de façons de faire ces choses, et honnêtement, c'est le cas. Mais commencez par ces bases. Elles couvriront 90 % de ce dont vous avez besoin, et lorsque vous rencontrerez les cas limites, vous aurez une base solide sur laquelle vous appuyer.

L'important est que vous appreniez et construisiez des choses, même lorsque tout le reste semble instable. Le code ne vous juge pas, il ne crie pas, et si vous cassez quelque chose, vous pouvez toujours le réparer.

Continuez comme ça, et rappelez-vous - chaque expert était autrefois un débutant qui se sentait complètement perdu. Vous vous en sortez bien.

Référence Rapide pour Copier-Coller

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

Maintenant, allez construire quelque chose de cool avec ça !

💡
Vous voulez un excellent outil de test d'API qui génère de la belle documentation d'API ?

Vous voulez une plateforme intégrée, tout-en-un, pour que votre équipe de développeurs travaille ensemble avec une productivité maximale ?

Apidog répond à toutes vos demandes et remplace Postman à un prix beaucoup plus abordable !
button

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API