Conversion de Python Datetime en Epoch avec strftime
Lors de la conversion d'un objet datetime Python en nombre de secondes depuis l'époque à l'aide de strftime('% s'), vous pourriez rencontrer un résultat inattendu. Au lieu du nombre correct de secondes par rapport à l'époque, vous pouvez obtenir une valeur qui diffère d'une heure. En effet, strftime prend en compte le fuseau horaire du système et applique un décalage de fuseau horaire.
Solution :
Pour éviter ce problème et obtenir l'horodatage d'époque correct, plusieurs options sont disponibles :
Python 3.3 et Plus tard :
Utilisez la méthode timestamp() :
>>> datetime.datetime(2012, 4, 1, 0, 0).timestamp() 1333234800.0
Python 3.2 ou version antérieure :
Effectuer la conversion explicitement :
>>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds() 1333238400.0
Évitez d'utiliser strftime('%s') :
Il est important de noter que %s n'est pas officiellement pris en charge par la fonction strftime de Python. Sa fonctionnalité dépend de l'implémentation strftime du système, qui peut varier selon les différentes plates-formes et introduire des écarts de fuseau horaire. Par conséquent, il est recommandé d'utiliser les méthodes mentionnées ci-dessus pour des conversions précises d'horodatage d'époque.
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!