Conversion d'objets datetime en secondes en Python
Lorsque vous travaillez avec des objets datetime en Python, il devient souvent nécessaire de les convertir en secondes pour diverses à des fins analytiques. Cependant, la méthode toordinal() peut ne pas fournir le résultat souhaité, car elle ne fait la différence qu'entre les dates avec des jours distincts.
Pour convertir avec précision un objet datetime en secondes, en particulier pour la date spécifique du 1er janvier 1970, plusieurs options sont disponibles. Pour toutes les autres dates de début, vous devrez calculer le décalage horaire entre les deux dates.
Pour le 1er janvier 1970 :
datetime.datetime.timestamp() : Cette méthode renvoie directement le nombre de secondes écoulées depuis l'époque Unix, qui correspond à 00:00:00 UTC le 1er janvier 1970.
<code class="python">t = datetime.datetime(1970, 1, 1) seconds = t.timestamp()</code>
time.mktime() : La fonction time.mktime() peut également être utilisée pour convertir un objet datetime en secondes depuis l'époque Unix.
<code class="python">import time t = datetime.datetime(1970, 1, 1) time_struct = t.timetuple() seconds = time.mktime(time_struct)</code>
Pour toute autre date de début :
timedelta.total_seconds() : La soustraction de deux objets datetime entraîne un objet timedelta. La méthode total_seconds() de timedelta fournit le nombre de secondes entre les deux dates.
<code class="python">t = datetime.datetime(2009, 10, 21, 0, 0) starting_date = datetime.datetime(1970, 1, 1) seconds = (t - starting_date).total_seconds()</code>
Il est important de noter que la date de début doit être spécifiée en UTC (temps universel coordonné). pour des résultats précis. Si votre datetime n'est pas en UTC, vous devrez la convertir ou attacher une classe tzinfo avec le décalage approprié.
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!