Maison  >  Article  >  développement back-end  >  Comment ajouter des secondes à un objet datetime.time en Python ?

Comment ajouter des secondes à un objet datetime.time en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 10:26:17212parcourir

How to Add Seconds to a datetime.time Object in Python?

Ajout de secondes à datetime.time en Python

Les développeurs rencontrent souvent le besoin de manipuler les valeurs temporelles en Python. Parmi les différents composants datetime, datetime.time représente une heure de la journée sans composant date. Pour ajouter un nombre entier de secondes à un objet datetime.time, nous avons besoin d'une méthode standard et efficace.

Approches conventionnelles

Tentative d'ajouter directement un nombre entier à un La valeur datetime.time ou l’utilisation d’un timedelta avec un objet time entraîne des erreurs de type. Des fonctions personnalisées telles que add_secs_to_time() ont été développées pour résoudre ce problème.

Solution efficace

Cependant, une solution plus élégante et pythonique existe. En convertissant l'objet datetime.time en une instance datetime complète avec une date factice, nous pouvons exploiter le timedelta pour ajouter des secondes. Par exemple :

<code class="python">import datetime

timeval = datetime.time(11, 34, 59)
secs_to_add = 3
dt = datetime.datetime(100, 1, 1, timeval.hour, timeval.minute, timeval.second)  # Dummy date
dt += datetime.timedelta(seconds=secs_to_add)
result_time = dt.time()</code>

Cette approche produit le résultat attendu : 11:35:02. Il conserve les informations temporelles d'origine tout en incrémentant les secondes avec précision.

Fonction d'assistance

Pour plus de commodité, nous pouvons créer une fonction réutilisable appelée addSecs :

<code class="python">def addSecs(tm, secs):
    fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second)
    fulldate += datetime.timedelta(seconds=secs)
    return fulldate.time()</code>

En utilisant cette fonction, nous pouvons manipuler facilement les valeurs datetime.time :

<code class="python">a = datetime.datetime.now().time()
b = addSecs(a, 300)</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn