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

Linda Hamilton
Libérer: 2024-10-31 10:26:17
original
225 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!