Maison > Article > développement back-end > Comment puis-je ajouter des secondes à un objet datetime.time en Python ?
Ajout de secondes à datetime.time en Python
Ajout d'un nombre entier de secondes à une valeur datetime.time en Python n'est pas immédiatement simple . Les tentatives d'ajout d'un timedelta ou d'un autre objet datetime.time entraînent des erreurs.
Approches naïves
Tentatives de base telles que :
<code class="python">datetime.time(11, 34, 59) + 3 datetime.time(11, 34, 59) + datetime.timedelta(0, 3) datetime.time(11, 34, 59) + datetime.time(0, 0, 3)</code>
toutes échouer avec des erreurs de type.
Conversion manuelle
Une solution consiste à convertir le datetime.time en secondes, à ajouter les secondes souhaitées, puis à reconstruire l'objet datetime.time :
<code class="python">def add_secs_to_time(timeval, secs_to_add): secs = timeval.hour * 3600 + timeval.minute * 60 + timeval.second secs += secs_to_add return datetime.time(secs // 3600, (secs % 3600) // 60, secs % 60)</code>
Utiliser datetime.datetime
Une méthode plus pratique consiste à utiliser un objet datetime.datetime complet, en le définissant sur une date factice, puis en utilisant l'heure () pour récupérer uniquement la valeur temporelle. Par exemple :
<code class="python">a = datetime.datetime(100, 1, 1, 11, 34, 59) b = a + datetime.timedelta(0, 3) print(a.time()) print(b.time())</code>
Résultats en :
11:34:59 11:35:02
Vous pouvez également utiliser :
<code class="python">b = a + datetime.timedelta(seconds=3)</code>
Fonction personnalisée
Si une fonction personnalisée est souhaitée, vous pouvez en définir une qui utilise la méthode addSecs :
<code class="python">import datetime def addSecs(tm, secs): fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second) fulldate = fulldate + datetime.timedelta(seconds=secs) return fulldate.time()</code>
Cette méthode accepte un objet datetime.time et un entier représentant le nombre de secondes à ajouter, renvoyant le heure modifiée.
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!